我有这个元组:
q =({'sum(total)': Decimal('89')},)
我需要从一个单独的变量中提取数字。我试过了
(x1,x2) = q
但这会引发错误:
E ValueError: need more than 1 value to unpack
我不熟悉元组,也不知道如何提取它。
最佳答案
您的元组仅包含一个元素,即具有一个键值对的字典。如果您想提取该对,则需要解决它:
(x1, x2), = q[0].items()
上面的表达式从元组(字典)中提取第一个元素,并调用 dict.items()
的方法。生成的序列 (key, value)
然后将对分配给 (key, value),
左侧目标,只能采用一个这样的对。
演示:
>>> q = ({'sum(total)': Decimal('89')},)
>>> (x1, x2), = q[0].items()
>>> x1
'sum(total)'
>>> x2
Decimal('89')
您还可以迭代元组中的所有键值对,或者可以使用键名称。例如,后者看起来像这样:
decimal_value = q[0]['sum(total)']
当然,您仍然可以在作业中使用解包:
contained_dictionary, = q
decimal_value = contained_dictionary['sum(total)']
这完全取决于您想要实现的目标,以及字典是否具有不同的键或应该只包含一个键值对。
关于python - 在Python中从元组值中提取特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35749173/