我使用python/django,我有一个元组的元组(或元组列表)。其实并不重要),基本上它是一个SQL查询的输出。我是这样打印的:
如果我有

output= [(a1,b1,c1,d1), (a2,b2,c2,d2), ...]

所以我会:
for a,b,c,d in output:
  ...

现在的问题是,有时我选择了很多列,我不想全部打印出来。
我能只解压我需要的值吗。还是因为元组的顺序限制了我?
例如,我可以做:
for a, d in output:
   ...

(注意,我想跳过元组中的第二个和第三个值)
这是可能的,还是我必须使用索引?
很明显,django模板有点不同,但重点是相同的。

最佳答案

您仍然需要打开它们,但可以忽略它们:

for a, _, _, d in output:
    # Do things with a and d

如果您在Python 3上,也可以使用*
for a, *_, d in output:
    # same deal - _ is now a list of all the values between `0 and len(row) - 1`

Python 3的优点是,单个行的长度可以更改(低至2个元素),您仍然可以得到正确的值,而在Python 2中,如果一行输出不是4个条目,则该行将断开。

关于python - python元组拆包列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24066255/

10-11 22:38
查看更多