元组的python解包列表

标签 python django list tuples unpack

我使用 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解包列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066255/

相关文章:

python - 打印链表队列中的元素

Python - 如何获取所有实例而不仅仅是页面上的第一个实例

python - 如何在 TensorFlow 中计算 Sobel 边缘检测

Django celery - 检查任务是否完成,如果完成则重启任务(如果没有完成,不要重启任务)

python - 基于uwsgi监听队列的AWS自动缩放

python - 如何根据所选名称更改文件中的特定行?

html - 使用 Django 模板插入扩展背景色

python - 加速必须遍历整个列表的 Python 代码

python - 检查变量是否为列表的最佳方法是什么?

r - 循环不起作用并且不会在 R 中引发任何错误