从Python中的元组值中提取特定数字

时间:2016-03-02 13:54:19

标签: python tuples

我有这个元组:

q =({'sum(total)': Decimal('89')},)

我需要在一个单独的变量中从中提取数字。我试过了

(x1,x2) = q

但这会引发错误:

E       ValueError: need more than 1 value to unpack

我对元组并不熟悉,也没有更多的想法如何提取它。

1 个答案:

答案 0 :(得分:2)

您的元组仅包含一个元素,一个包含一个键值对的字典。如果你想提取那对,你需要解决它:

(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)']

这完全取决于您要实现的目标,以及字典是否具有不同的键,或者只应包含一个键值对。