值的總和只有我有以下列表返回基於一個關鍵條件
a = [(1:0.4), (6:0.15), (6:0.15), (7:0.1)]
而只想返回其中關鍵等於一定值的值的總和。例如。鍵等於6的值的總和將是0.3。我認爲下面會工作:
= sum(values for key, values in a.items() if key == 6)
任何建議讚賞什麼是正確的語法。
值的總和只有我有以下列表返回基於一個關鍵條件
a = [(1:0.4), (6:0.15), (6:0.15), (7:0.1)]
而只想返回其中關鍵等於一定值的值的總和。例如。鍵等於6的值的總和將是0.3。我認爲下面會工作:
= sum(values for key, values in a.items() if key == 6)
任何建議讚賞什麼是正確的語法。
我相信這是你在找什麼:
a = [[1,0.4], [6,0.15], [6,0.15], [7,0.1]]
sumvalue = 0
for b in a:
if b[0] == 6:
sumvalue += b[1]
在任何情況下,您在問題中呈現的列表都不能存在。
此外,如果有什麼不起作用,通常採取更小的步驟會更好。
編輯:根據最終的數據結構,上面的答案可能會更好。
太好了,謝謝。只需掌握Python數據結構。 –
嗯...這隻會給你一個總和,其中的關鍵是6 ...我不完全確定這是OP的要求(雖然它肯定是在正確的方向邁出的一步) –
這就是我至少理解這個問題。 – Rob
生病假設你確實有類型的字典列表,並沒有什麼奇怪的數據結構是在你原來的問題並不在Python存在
a = [{1:0.4}, {6:0.15}, {6:0.15}, {7:0.1}]
from collections import defaultdict
sums = defaultdict(int)
for data_dict in a:
for k,v in data_dict.items():
sums[k] += v
print sums
太好了,謝謝。只需掌握Python數據結構。 –
a = [(1:0.4), (6:0.15), (6:0.15), (7:0.1)]
是非法的python表達式。
你可能意指a = [{1:0.4}, {6:0.15}, {6:0.15}, {7:0.1}]
。
如果是這樣,那麼sum([item[6] for item in a if list(item.keys())==[6]])
'6:0.15'的類型是什麼?串? – RomanPerekhrest
這不是你實際可以擁有的清單。 – user2357112
是'a = [{1:0.4},{6:0.15},...]'? –