我有Python的list迭代是這樣定義的:Python列表迭代
for i in range(5):
for j in range(5):
if i != j:
print i , j
因此,對於每一個元素在我的定義的範圍[0..5]我想每個元素我,也是所有其他不是我的元素。
此代碼完全按照我的預期,但有沒有更乾淨的方式做到這一點?
我有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
但是,OP的代碼很容易理解,不需要讀者知道itertools; itertools會在您需要將這些尺寸縮放到更多尺寸或多次需要時發光。 – 2012-03-29 09:03:16
你可以使用範圍()只一次在兩個循環之前作爲第一級優化 – DhruvPathak 2012-03-29 08:52:34
從效率的角度來看,這是完全可以使用的,除非您在緊密循環中調用它或顯着增加'5',我不擔心。從可讀性的角度來看,這是完全可讀的。 – MattH 2012-03-29 08:53:38