假設在python中有一字典如下:
x=需要合併為:
x=需要做到三件事:
1. 將字串轉化為數值列表
2. 合併兩個列表並新增新的鍵值
3. 去除重複元素
第1步通過常用的函式eval()就可以做到了,第程式設計客棧2步需要新增乙個鍵值並新增元素,第3步利用set集合的性質可以達到去重的效果,不過最後需要再將set集合轉化為list列表。**如下:
x=x['c']=list(set(eval(x['a'])+eval(x['b'])))
del 程式設計客棧x['a']
del kbgqbmcdx['b']
print x
輸出結果為:
但是在批量處理中,可能會其中乙個鍵值的元素只有1個,導致編譯器會識別為int型別,導致出現錯誤。
x=x['c']=list(set(eval(x['a'])+eval(x['b'])))
del x['a']
del x['b']
print x
執行結果為:
traceback (most recent call last):
file "test.py", line 2, in
x['c']=list(set(eval(x['a'])+eval(x['b'])))
typeerror: can only concatenate tuple (not "int") to tuple
處理方法是,人為地將'b'中的元素複製乙份,使編譯器不識別為int:
x=x['c']=list(set(eval(x['a'])+eval(x['b']+','+x['b'])))
del x['a']
del x['b']
print x
這樣就能正常執行。這裡利用了set會去去除重複元素的特點,新增了相同的元素。不過,若是'b'中的元素為空,這個方法也會失效。這裡需要利用python列表中最後乙個元素後面允許跟乙個逗號的性質,按如下方法處理即可。
x=x['c']=list(set(eval(x['a']+','+x['b'])))
del x['a']
del x['b']
print x
執行結果:
最後一種方法也能夠處理前兩種情況。
本文標題: python合併字典鍵值並去除重複元素的例項
本文位址:
python 二維字典的鍵值合併等函式
這篇文章主要講python中關於字典的一些具體操作,講解的問題都是本人在實際程式設計中所遇到的問題,讀者可以根據自己所遇到的問題具體問題具體分析。1 二維字典的鍵值合併 先提供乙個應用場景 假設我有兩個二維字典 room1 orderid2 room2 orderid2 這兩個字典的key相同,只有...
Python 「合併字典」
def count dicts dict1,dict2 differ set dict1 set dict2 same set dict1 set dict2 print same print differ for key in same dict1 key dict2 key for key in...
python 實現二維字典的鍵值合併等函式
這篇文章主要講python中關於字典的一些具體操作,講解的問題都是本人在實際程式設計中所遇到的問題,讀者可以根據自己所遇到的問題具體問題具體分析。1 二維字典的鍵值合併 先提供乙個應用場景 假設我有兩個二維字典 room1 orderid2 room2 orderid2 這兩個字典的key相同,只有...