17

我怎样才能将一个未知的元组解包到一个列表中?

我有许多数据列,它们被某些函数分成一个元组。我想将此元组解压缩为变量,但我不知道我将拥有多少列。有没有办法将它动态解包到我需要的尽可能多的变量中?

4

3 回答 3

34

您可以使用星号解压缩可变长度,例如:

foo, bar, *other = funct()

这应该将第一个项目放入foo,第二个放入bar,其余所有放入other

更新:我忘了提到这仅与 Python 3.0 兼容。

于 2009-01-10T23:24:12.327 回答
10

将元组解包到列表中?

l = list(t)
于 2009-01-10T23:18:02.917 回答
4

你的意思是你想动态创建变量吗?如果它们是动态创建的,您的程序如何知道如何引用它们?

元组有长度,就像列表一样。完全可以这样做:

total_columns = len(the_tuple)

您还可以将元组转换为列表,但这样做没有任何好处,除非您想开始修改结果。(元组不能修改;列表可以。)但是,无论如何,将元组转换为列表是微不足道的:

my_list = list(the_tuple)

很多方法可以动态创建变量(例如,使用eval),但同样,您如何知道如何引用它们?

我认为您应该明确说明您要在这里做什么。

于 2009-01-10T23:23:39.210 回答