Python:解压缩到未知数量的变量?

时间:2009-01-10 23:15:59

标签: python casting iterable-unpacking

我怎么能解压一个未知的元组,比如列表?

我有许多数据列,它们通过某个函数分成一个元组。我想将这个元组解压缩到变量,但我不知道我会有多少列。有没有办法动态解压缩到我需要的变量?

感谢您的帮助:)

3 个答案:

答案 0 :(得分:17)

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

foo, bar, *other = funct()

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

更新:我忘了提到这只是兼容Python 3.0。

答案 1 :(得分:7)

将元组解压缩到列表中?

l = list(t)

答案 2 :(得分:3)

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

元组有长度,就像列表一样。做一些像这样的事情是完全允许的:

total_columns = len(the_tuple)

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

my_list = list(the_tuple)

方式即时创建变量(例如,使用eval),但同样,您如何知道如何引用它们?

我认为你应该明确说明你在这里要做的事情。