CABasicAnimation
我有一个字典dict和一个字符串名。现在,我想求和等于字符串名称字符的dict值。
通过我的解决方案,我只得到了值 71.07884, 110, 103.14484,但是我如何求和这些值。
如果我尝试print(sum(value)),我会得到以下消息:TypeError:“ float”对象不可迭代。
我是python的新手:)
答案 0 :(得分:1)
您可以这样做-先初始化一个空列表,然后每次在循环中获取值时,将其append
都添加到列表中。您将获得一个列表[71.07884, 110, 103.14484]
,然后可以对其进行汇总。
dict = {'A': 71.07884,
'B': 110,
'C': 103.14484,
'D': 115.08864,
'E': 129.11552,
'F': 147.1766,
}
name = "ABC"
values = []
for character in name:
for key, value in dict.items():
if key == character:
values.append(value)
sum(values)
输出:
sum(values)
Out[6]: 284.22368
答案 1 :(得分:1)
您可以这样做:
mydict = {'A': 71.07884,
'B': 110,
'C': 103.14484,
'D': 115.08864,
'E': 129.11552,
'F': 147.1766,
}
name = "ABC"
sum(value for key, value in mydict.items() if key in name)
# 284.22368
请注意,我将您的词典重命名为mydict
,因为dict
是Python的内置函数,您不应将其用作变量名。
答案 2 :(得分:1)
您将收到该错误,因为value
会根据其迭代器进行更改。为了找到总和,您需要存储和将值添加到另一个变量,然后调用sum()
,也可以将其添加到新变量。
sum()
所做的是获取一个列表并对其进行遍历。在您的代码中,它正在执行的操作是仅在循环中传递当前值,即1值。
示例:注意(执行此操作的方法有很多。)
name = "ABC"
sum = 0
for character in name:
for key, value in dict.items():
if key == character:
print(value)
sum = value + sum
print(sum)
答案 3 :(得分:1)
我认为您需要这个:
list_name = "ADF"
sum([value for key, value in dict.items() if key in list_name])