使用列表制作python的简短版本一次列出2个项目

时间:2018-08-29 14:50:41

标签: python

是否有一种方法可以使用制作清单的简短版本在一行中列出2个项目。

例如,我想写类似的东西

G3 = [(i,j) for i in Primes and j in G2 if dig_sum(i,j) == True and con_test(i,j) == True ]

编辑:我应该提到这给了我

错误
NameError: name 'j' is not defined


here i is an int and j is tuple

我的主要目的是获得

G = [(i,j,k),(g,h,k)...]

我知道我的uppser代码会给出类似的信息

G = [(i,(j,k)),(g,(h,k))...]

但是我想以后可以更改它。

这是长版

G3 = []
for i in Primes:
    for j in G2:
        if dig_sum(i,j) == True and con_test(i,j) == True:
            G3.append((i,j[0],j[1]))
print(G3)

1 个答案:

答案 0 :(得分:3)

您可以使用*解开元组文字,并为and切换for,以在列表推导中嵌套嵌套循环。您也不需要在== True块中使用if

G3 = [(i,*j) for i in Primes for j in G2 if dig_sum(i,j) and con_test(i,j)]

n.b。这可能不适用于旧版本的python。我不确定它何时引入。