繁体   English   中英

python 中的元组解包列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM