[英]Unpacking list with tuple in python
比方说,我们有这个带有元组的列表
general = [(a, b, c)]
我想打开它。
为什么这不起作用:
[value, value1, value2] = general
但这有吗?
[temp] = general
value, value1, value2 = temp
不应该一样吗?
有没有其他替代的、更短的方法来做到这一点?
拆包大致与打包相反。 像这样打包数据时:
general = [(a, b, c)]
它可以通过像这样交换分配来解包:
[(a, b, c)] = general
使用更平坦或更深的模式,例如[a, b, c] = general
或[[(a, b, c)]] = general
,与数据不匹配,因此无法解包。 中间赋值,例如[temp] = general
,可用于减少/增加深度,但在直接使用正确模式时不需要。
general 是一个列表,所以您在这里尝试做的[value, value1, value2] = general
是将您的值分配给列表中的值,但这里您的列表只有一个元素,即您的元组
这就是为什么当您执行[temp] = general
时,您将 temp 分配给 general 的唯一值。
所以你可以做的是[value, value1, value2] = general[0]
因为general
是一个包含元组的列表,所以你应该先解包包含元组的列表,然后解包元组以获取值
general = [(a, b, c)]
value1, value2, value3 = general[0]
Python 工作正常。 您正在尝试将数组内的元组内的对象保存到多个对象。 请先尝试解压一次。
这将正常工作:
value, value1, value2 = [(a, b, c)][0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.