簡體   English   中英

對某些(不是全部)字典值執行運算

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM