首页 > 解决方案 > 列表理解:带有 append 语句的嵌套循环

问题描述

我有这段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一次,但我不知道如何将列表理解放在一起。

标签: pythonloopsnestedlist-comprehension

解决方案


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')]


推荐阅读