如何提取 dict 值并设置为 int 变量?
How to extract dict values and set as int variable?
我想做的是提取字典的值来用它做计算。我的字典只有一个值。但是我无法使用字典值进行计算 (+-*/),而且我找不到将值分配给 int
变量的方法。
a = {'number': 5}
b = a.values()
c = b*3
print(c)
代码产生错误:
TypeError: unsupported operand type(s) for *: 'dict_values' and 'int'
a.values()
returns 所有字典的值作为dict_values
.
当然,在你的情况下这只是一个值,但它仍然是那种形式。
在这种情况下可行的一件事:
a = {'number': 5}
b = a.values()
c = list(b)[0]*3
print(c)
dict_values
本身是字典值的 so-called 视图,原因有点太复杂,无法在此处介绍 - 但因此无法直接对其进行索引,所以 c = b[0]*3
也行不通。
相反,dict_values
通过将其传递给 list()
函数转换为 list
,该函数接受任何可迭代对象(如 dict_values
)并创建一个从中列出。并且 list
可以 进行索引,因此 list(b)[0]*3
获取值列表,select 第一个 ([0]
) 元素,并且乘以 3
.
但更有意义的是:
a = {'number': 5}
b = a['number']
c = b*3
这只是按预期使用字典,并通过使用键 a['number']
.
索引字典来 select 得到 'number'
值
或:
a = {'number': 5}
b = list(a.values())
c = [x*3 for x in b]
由于字典 可以 有多个值,您还可以获取值列表并将每个元素分别乘以 3。但结果必须是另一个集合,像这样 list
.
此外,如果您不想使用列表或列表理解,您可以简单地使用:
a = {'number': 5}
for x in a.values():
b=int(x)
c = b*3
或者正如我评论的那样:
a = {'number': 5}
b = a['number']
c = b*3
我想做的是提取字典的值来用它做计算。我的字典只有一个值。但是我无法使用字典值进行计算 (+-*/),而且我找不到将值分配给 int
变量的方法。
a = {'number': 5}
b = a.values()
c = b*3
print(c)
代码产生错误:
TypeError: unsupported operand type(s) for *: 'dict_values' and 'int'
a.values()
returns 所有字典的值作为dict_values
.
当然,在你的情况下这只是一个值,但它仍然是那种形式。
在这种情况下可行的一件事:
a = {'number': 5}
b = a.values()
c = list(b)[0]*3
print(c)
dict_values
本身是字典值的 so-called 视图,原因有点太复杂,无法在此处介绍 - 但因此无法直接对其进行索引,所以 c = b[0]*3
也行不通。
相反,dict_values
通过将其传递给 list()
函数转换为 list
,该函数接受任何可迭代对象(如 dict_values
)并创建一个从中列出。并且 list
可以 进行索引,因此 list(b)[0]*3
获取值列表,select 第一个 ([0]
) 元素,并且乘以 3
.
但更有意义的是:
a = {'number': 5}
b = a['number']
c = b*3
这只是按预期使用字典,并通过使用键 a['number']
.
'number'
值
或:
a = {'number': 5}
b = list(a.values())
c = [x*3 for x in b]
由于字典 可以 有多个值,您还可以获取值列表并将每个元素分别乘以 3。但结果必须是另一个集合,像这样 list
.
此外,如果您不想使用列表或列表理解,您可以简单地使用:
a = {'number': 5}
for x in a.values():
b=int(x)
c = b*3
或者正如我评论的那样:
a = {'number': 5}
b = a['number']
c = b*3