赞
踩
目前所做的一个项目,需要对数据进行处理,进行中的某一步即为要对生成的词频字典进行合并处理。且合并词频词典并非单纯的合在一起,而是需要将具有相同key的item项value进行相加
#version 1.0
def Merge(dict1, dict2):
return(dict2.update(dict1))
dict1={'a':2,'b':3}
dict2={'a':3,'b':2}
Merge(dict1,dict2)
print(dict2)#{'a': 2, 'b': 3}
d3={'a':2,'b':3}
d4={'c':3,'d':7}
Merge(d3,d4)
#{'c': 3, 'd': 7, 'a': 2, 'b': 3}
这样做只是单纯的合并字典,如遇到相同key项,直接进行合并代替,并不是我们要的效果
from collections import Counter X,Y = Counter(dict1), Counter(dict2) z=dict(X+Y) print(z) X=dict(X+Y) print(X) #{'a': 5, 'b': 5} # {'a': 5, 'b': 5} d4={'c':3,'d':7} X,Y = Counter(d4), Counter(dict2) z=dict(X+Y) print(z) #{'c': 3, 'd': 7, 'a': 3, 'b': 2}
利用collections.Counter实现,同时合并了字典且合并了相同key的item项
#字典按value的值进行排序 reverse=True表示是否进行降序 all_dict字典变量名 print (sorted(all_dict.items(), key=lambda x: x[1], reverse=True)) my_dict = {'a': 22, 'b': 11, 'c': 44, 'd': 33} print (my_dict.items()) #[('a', 22), ('c', 44), ('b', 11), ('d', 33)] # 字典的key以列表形式输出 print ([key for key, value in my_dict.items()]) #['a', 'c', 'b', 'd'] # 字典的value以列表的形式输出 print ([value for key, value in my_dict.items()]) #[22, 44, 11, 33] # 字典的key:value互换位置 print ({value: key for key, value in my_dict.items()} ) #{33: 'd', 11: 'b', 44: 'c', 22: 'a'} # 字典按key的值进行排序 print (sorted(my_dict.items(), key=lambda x: x[0])) #[('a', 22), ('b', 11), ('c', 44), ('d', 33)] # 字典按value的值进行排序(正序) print (sorted(my_dict.items(), key=lambda x: x[1])) #[('b', 11), ('a', 22), ('d', 33), ('c', 44)]等价于:print (sorted(my_dict.items(), key=lambda x: x[1], reverse=False))说明:my_dict.items()为待排序的对象;key=lambda x: x[1]是对前面的对象中的第二维数据(即value)的值进行排序。 key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。 print(sorted(my_dict.items(), key=lambda x: x[1])[-1]) #44 #获取字典中,value最大的item
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。