列表理解:带有append语句的嵌套循环

时间:2019-03-21 01:24:28

标签: python loops nested list-comprehension

我有这段python代码

xy_tups = []
for x in ['m', 't', 'b']:
    for y in ['b', 't', 'e']:
        if x != y:
            xy_tups.append ((x, y))
输出以下内容的

:[('m','b'),('m','t'),('m','e'),('t','b'),(' t','e'),('b','t'),('b','e')]

我需要创建这段代码的列表理解版本,但是我很难弄清楚它。我尝试过这些方法

 xy_tups = [x for x in ['m', 't', 'b'] and y for y in ['b', 't', 'e'] if x != y] 

 xy_tups = [x for y in ['m', 't', 'b'] and y for x in ['b', 't', 'e'] if x != y]

,我尝试将xy_tups.append(x,y)添加到列表理解代码中,但出现错误。我知道x列表中的每个字母都会与y列表中的每个字母连接一次,但是我无法弄清楚如何将列表理解结合在一起。

2 个答案:

答案 0 :(得分:1)

xy_tups = [(x,y) for x in ['m , 't', 'b'] for y in ['b', 't', 'e'] if x != y ]
print(xy_tups)

输出: [('m','b'),('m','t'),('m','e'),('t','b'),('t','e') ,('b','t'),('b','e')]

答案 1 :(得分:0)

[(a, b) for a in ['m', 't', 'b'] for b in ['b', 't', 'e'] if a != b]

输出

[('m', 'b'), ('m', 't'), ('m', 'e'), ('t', 'b'), ('t', 'e'), ('b', 't'), ('b','e')]