python字典合併, 列表生成字典,方法

2021-10-20 19:20:45 字數 2816 閱讀 5949

可能會用到的方法

dic1 =

dic2 =

dic3 =

dic4 =

dic5 =

對dic1和dic2, 保留 dic1的key, 如果dic2包含dic1中的key, 則替換成dic2的value,如果不包含,則將dic1中的value修改為0

temp =

for k, v in dic1.items():

if k in dic2.keys():

temp[k]

= dic2[k]

else

: temp[k]=0

結果:

對dic1, dic2, dic3, 保留dic1的key, 如果dic1中的key在dic2和dic3中,則value值相加,否則保留dic1中的value

方案1:

temp_1 =

for k, v in dic1.items():

if k in dic2.keys(

)| dic3.keys():

temp_1[k]

= dic1[k]

+ dic2[k]

+ dic3[k]

else

: temp_1[k]

= dic1[k]

結果:

方案2:可以是多個字典

from functools import

reduce

defsum_dict_1

(a,b)

: temp =

dict()

for key in a.keys():

if key in b.keys():

temp[key]

=sum

([a.get(key,0)

for a in

(a, b)])

else

: temp[key]

= a[key]

return temp

print

(reduce

(sum_dict_1,

[dic1, dic2, dic3]))

結果:

3.合併dic1, dic2, key值相同,value值相加

from functools import

reduce

defsum_dict

(a,b)

: temp =

dict()

for key in a.keys(

)| b.keys():

temp[key]

=sum

([d.get(key,0)

for d in

(a, b)])

return temp

sum_dict(dic1, dic2)

結果:

對dic3, dic4合併,合併dic3和dic4中的key, value

def

merge_dic

(dic1, dic2)

: result =

for k, v in dic1.items():

for kk, vv in dic2.items():

if k == kk:

result[k]

=list

(set

(list

(chain(

*[v, vv]))

))if k not

in dic2.keys():

result[k]

= v for kk, vv in dic2.items():

if kk not

in dic1.keys():

result[kk]

= vv

return result

結果:

li =[1

,5,33

,5,6

]li_1 =

['a'

,'b'

,'c'

,'a'

,'c'

]dd =

for i, key in

enumerate

(li_1):if

not dd.get(key)

: dd[key]

=[li[i]

]else

: dd[key]

)print

(dd)

結果:

from collections import counter

defget_order_dict_n

(_dict, n)

:# 獲取字典中值最大的前n個數,幷包含並列情況

result = counter(_dict)

.most_common(n)

d =for k,v in result:

d[k]

= v return d

a =get_order_dict_n(a,2)

結果:

a =

# 對字典進行排序

l =sorted

(a.items(

),key=

lambda item:item[1]

,reverse=

true

)

python 合併列表的方法

python中利用非迴圈的方法將兩個list列表中的內容進行合併 在處理字串 目錄和排序資訊的時候,經常需要將兩個列表進行合併。但利用for迴圈逐個插入會十分繁瑣,利用下面的方法可以快速方便的進行列表內容的合併。1.運算直接合併 list a a b c list b d e f g list ab...

python 列表生成式,字典生成式

生成乙個列表,列表元素分別為 1 1,2 2.9 9 import math li for i in range 1,10 print li print i i for i in range 1,10 print i i for i in range 1,10 if i 2 0 找出1 10之間的所...

Python 列表生成式 字典生成式

通過生成式可以更加簡潔地生成列表和字典 列表生成式 對比 直接生成資料後加入列表示例 user list list for i in range 10 2 print user list 通過列表生成式直接生成示例 user list x 2for x in range 10 print user ...