我有一个嵌套的for循环,我想将其转换为python中的列表理解。我该怎么办
all_combinations = []
for i in range(0,size):
for j in range(i,size):
if i!=j:
all_combinations.append((i,j))
答案 0 :(得分:3)
所有其他答案都可以回答您的问题,但是我想提出一个更好的选择itertools.combinations
:
from itertools import combinations
print(list(combinations(range(3), 2)))
# [(0, 1), (0, 2), (1, 2)]
为什么更好?
range(3)
。答案 1 :(得分:2)
all_combinations = [(i,j) for i in range(size) for j in range(i,size) if i!=j]
答案 2 :(得分:1)
列表理解:
all_combinations = [ (i,j) for i in range(0,size) for j in range(i,size) if i!=j ]
答案 3 :(得分:1)
为什么不只是
all_combinations = [(i,j) for i in range(size) for j in range(i+1,size) ]
不需要if测试,因为它永远不会包含(i,i)