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()