Python列表迭代
问题描述:
我有Python的list迭代是这样定义的:Python列表迭代
for i in range(5):
for j in range(5):
if i != j:
print i , j
因此,对于每一个元素在我的定义的范围[0..5]我想每个元素我,也是所有其他不是我的元素。
此代码完全按照我的预期,但有没有更干净的方式做到这一点?
答
import itertools as it
for i, j in it.permutations(range(5), 2):
print i, j
+1
但是,OP的代码很容易理解,不需要读者知道itertools; itertools会在您需要将这些尺寸缩放到更多尺寸或多次需要时发光。 – 2012-03-29 09:03:16
你可以使用范围()只一次在两个循环之前作为第一级优化 – DhruvPathak 2012-03-29 08:52:34
从效率的角度来看,这是完全可以使用的,除非您在紧密循环中调用它或显着增加'5',我不担心。从可读性的角度来看,这是完全可读的。 – MattH 2012-03-29 08:53:38