python列表迭代
我在python中有一个列表迭代,定义如下:python列表迭代,python,list,iteration,Python,List,Iteration,我在python中有一个列表迭代,定义如下: for i in range(5): for j in range(5): if i != j: print i , j 因此,对于定义范围[0..5]中的每个元素,我希望得到每个元素I,但也要得到所有其他非I元素 这段代码完全符合我的预期,但有更干净的方法吗?使用: [(x,y)对于范围内的x(5)对于范围内的y(5)如果x!=y]在两个循环之前,您只能使用range()一次作为第一级优化从效率的角
for i in range(5):
for j in range(5):
if i != j:
print i , j
因此,对于定义范围[0..5]中的每个元素,我希望得到每个元素I,但也要得到所有其他非I元素
这段代码完全符合我的预期,但有更干净的方法吗?使用:
[(x,y)对于范围内的x(5)对于范围内的y(5)如果x!=y]在两个循环之前,您只能使用range()一次作为第一级优化从效率的角度来看,这是完全可以使用的,除非您在紧循环中调用它或显著增加
5
,否则我不会担心。从易读性的角度来看,这是完全可读的;当您需要将这些工具扩展到更多维度或多次需要时,itertools将大放异彩。请在您的答案中提供更多信息。建议为后代提供一些背景或解释。
import itertools as it
for i, j in it.permutations(range(5), 2):
print i, j