Python - 在列表中存储不同数量的元素?

时间:2014-02-15 16:11:36

标签: python

这篇文章跟我前面提到的问题: Split list into different variables

我意识到我会在列表中有多个元素块,这些元素可能并不总是限制在3.例如,我可以:

[('love', 'yes', 'no'), ('valentine', 'no', 'yes'), ('day', 'yes','yes'), 
   ('house', 'yes','no'), ('car', 'yes','yes')]

[('love', 'yes', 'no'), ('valentine', 'no', 'yes'), ('day', 'yes','yes'), 
   ('house', 'yes','no'), ('car', 'yes','yes'), ('balloon', 'no','no'), 
   ('roses', 'yes','yes')]

var1, var2, var3 = listobj仅适用于其中三个元素块。但是对于更多,一般来说,我如何将所有这些元素存储到不同的变量中?

2 个答案:

答案 0 :(得分:4)

变量在代码中显式声明,因此可以使用的变量数是明确的,没有办法将未知长度的元组(或列表)解包到确定数量的变量。但您可以使用*在python3中创建extended iterable unpacking

>>> a, *b, c = range(5)
>>> a
0
>>> c
4
>>> b
[1, 2, 3]

答案 1 :(得分:0)

如果listobj的长度不确定,请直接将其用作列表,而不是将其解压缩为变量。

打开包装不同大小的列表没有任何意义。假设您可以动态地将listobj解压缩到尽可能多的变量(例如var1,var2,var3 ......只要需要)。你会如何编写消耗这些变量的代码?你突然需要知道它们的数量和一些聪明的方法来索引特定的一个,或者循环它们。猜猜是什么 - 这正是你首先列出名单的原因。