python解包元组列表

2024-04-25 07:37:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如果我有

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

所以我要做的是:

^{pr2}$

现在的问题是,有时我选择了很多列,但我不想全部打印出来。 我可以只解压缩我需要的值吗。或者我因为元组的顺序而受限?
i、 例如,我可以:

for a, d in output:
   ...

(注意,我想跳过元组中的第二个和第三个值) 这是可能的还是我必须使用索引?在

显然在django模板中略有不同,但要点是相同的。在


Tags: djangoa2列表outputsql顺序a1b2
3条回答

这不一定是推荐的方法,但我认为展示numpy的花式切片有多强大是有价值的:

import numpy as np
output = np.array(output, dtype='object')
for a,d in output[:, [0,3]]:
   print('a=%s, d=%s' % (a, d))

不能有选择地从元组解包。表示您不会在Python中使用某些值的常规方法是使用下划线_

for a, _, _, d in output:
    ...

或者,使用索引:

^{pr2}$

您仍然需要解压它们,但可以忽略它们:

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

如果您使用Python 3,还可以使用*

^{pr2}$

python3的优点是单个行的长度可以更改(低至2个元素),并且仍然可以获得正确的值,而在python2中,如果一行输出不是4个条目,那么该行就会中断。在

相关问题 更多 >