可能會用到的方法
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 ...