[英]Perform operation on some (not all) dictionary values
我有一本叫做spectradict
的字典,它由5個不同的鍵(每個鍵有多個值)組成,我想將4個鍵下的每個值乘以某個常數A。我想出了如何將所有值相乘(在所有鍵下)按常數:
spectradict.update((x, y*A) for x, y in spectradict.items())
但是我只想將spectradict['0.001']
, spectradict['0.004']
, spectradict['0.01']
, spectradict['0.02']
下的值乘以A。我想讓spectradict['E']
值保持不變。 我該怎么做?
您可以通過在生成器函數的末尾附加if <test>
來執行條件檢查。
spectradict.update((k, v*A) for k, v in spectradict.items() if k != 'E')
# or, inclusive test using a set
spectradict.update((k, v*A) for k, v in spectradict.items() if k in {'0.001', '0.004', '0.01', '0.02'})
您可以明確列出密鑰:
#UNTESTED
spectradict.update((x, spectradict[x]*A) for x in ['0.001', '0.004', '0.01', '0.02'])
或者,您可以排除E
:
#UNTESTED
spectradict.update((x, y*A) for x, y in spectradict.items() if x != 'E')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.