创建函数完成对字典的清理转换操作

各位大佬,初学python对下面这个问题不太能理解,求帮助。
创建以下函数,完成对字典的清理。
转换操作1.定义一个函数,删除字典中非数字的元素(如空值,非数字字符,若是数字字符转换为整型),返回一个清理后的字典
2.定义一个函数,用于求一组数据的标准差
3. 定义一个函数,对于一组数据进行标化处理 公式:x*=(x-均值)/标准差
创建一个字典,调用以上函数,先进行清理,然后将清理后的每元素值进行标化

代码可以这样写:

import numpy as np

def proc(d):
    new = {}
    for k,v in d.items():
        if str(v).isdigit(): 
            new.update({k:v})
        elif all([x.isdigit() for x in str(v).split('.')]):
            new.update({k: int(float(v))})
    return new
def std(arr):
    a=np.array(arr)
    return np.std(a)
def std1(arr):
    a=np.array(arr)
    return (a-np.mean(a))/std(a)
d={'a':'','b':'test','c':'22.8','d':21.5,'e':23}
print(proc(d))
print(std([2,4,6]))
print(std1([2,4,6]))

如有帮助,请采纳。点击我回答右上角【采纳】按钮。


import numpy as np

def get_dict(d):
    new_dict = {}
    for k, v in d.items():
        if str(v).isdigit():
            new_dict[k] = int(v)
    return new_dict


def get_std(arr):
    arr_std = np.std(arr, ddof=1)
    print('标准差:', arr_std)


d = {'1': 'a', '2':2, '3':'4', '4':'b'}
new_dict = get_dict(d)
print('清洗后字典:', new_dict)
arr = list(new_dict.values())
get_std(arr)

img

标化处理 公式:x*=(x-均值)/标准差的x代表什么?