python两个字典
⑴ python 比较两个字典大小
学习 Python 时,遇到看到菜鸟教程里的 cmp() 方法,衍生出这篇文章。但是后来和朋友讨论,感觉在实际应用中极少有用到比较字典大小的场景。不过能搞懂一个知识点,还是很开心的。
cmp(dict1, dict2) 比较两个字典大小的方法:先比字典长度,若相等就比 key 值,若再相等就比 value。
但是这个方法已经被 Python 3 取消了。
请参考: Python2 用 cmp() 比较字典大小 , Python3 为什么取消了 __cmp__ 方法
operator 模块提供了一系列方法比较两个字典大小,详细方法及使用示例请参考: Python3 使用 operator 模块比较字典大小 。
但是在写法上我们要注意,最好用 String 内置的方法,这样利于对空值的判断:
结果如下:
⑵ Python 两个字典如何实现相加(相同的键,值相加)
在数据处理过程中经常遇到求两个字典相加(并集),要求相同的键,值相加,不同的键,进行汇集,最后得出一个总的字典,自陪蚂己可以先进行思考,利用已有的知识,是否马上在心里有解决方法
例如:
d1={'a':1,'b':1}
d2={'b':2,'c':2}
要求的结果:d1+d2={'a':1,'b':3,'c':2}
下面介绍两种方法:
案例:
利用 collections 库里面的 Counter 函数进行计数,collections模块是一个很强大的模块,里面有各种扩展的变量容器唯罩,如果感兴趣的话可以参考这篇文指乱闹章 Python-collections模块 ,里面有详细的使用方法
以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注 DataShare (同微),不定期分享干货
⑶ Python两个字典key相同的值组成新字典
按照你的要求编写的两个字典key相同的值组成新字典的Python程序如下
dic1={'福州龙湖': ['1293521.23', '620624'], '赣州龙湖': ['3050.51']}
dic2={'福州龙湖': ['12345', '67890'], '赣州龙湖': ['123','456']}
dic3={}
for key in dic1:
if dic2.get(key):
dic3[key]=[dic1[key],dic2[key]]
else:
dic3[key]=dic1[key]
for key in dic2:
if dic1.get(key):
pass
else:
dic3[key]=dic2[key]
print(dic3)
源代码(注意源代码的缩进)
运行结果
{'福州龙湖': [['1293521.23', '620624'], ['12345', '67890']], '赣州龙湖': [['3050.51'], ['123', '456']]}
⑷ python中,如何将多个字典组合成一个字典
Python编程将多个字典文件合并成一个字典文件,代码如下:
//例子:合并a.txt和b.txt两个字典文件
defreadf(filename):
lines=file(filename).readlines()
dic={}
foriinlines:
i_=i.split()
dic[i_[0]]=int(i_[1])
returndic
dica=readf('a.txt')
dicb=readf('b.txt')
lines=[]
foriindica:
percent=str(float(dicb[i])*100/dica[i])+'%'
s=''.join([i,str(dica[i]),str(dicb[i]),percent])
s+=' '
lines.append(s)
//合并成一个字典文件c.txt
withopen('c.txt','w')asf:
f.writelines(lines)
f.close()