list = [1,2,3,4]
我想获得下面的结果并将它们存储在csv文件中。 (总共6行)
1,2
1,3
1,4
2,3
2,4
3,4
是否有这样的功能或如何在csv文件中完成并存储它?
答案 0 :(得分:7)
itertools
是你的朋友......
http://docs.python.org/2/library/itertools.html
>>> import itertools
>>> x = [1, 2, 3, 4]
>>> list(itertools.combinations(x, 2))
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
答案 1 :(得分:1)
使用itertools.combinations。它内置于Python 2.6 +。
import itertools
pairs = itertools.combinations(list, 2)
答案 2 :(得分:1)
一种选择是使用itertools.permutations
和列表理解:
>>> [(x, y) for x, y in itertools.permutations(mylist, 2) if x < y]
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
条件x < y
可确保您只获得x
低于y
的排列。
更好的选择是使用itertools.combinations(mylist, 2)
。
答案 3 :(得分:1)
这很简单,可以自己做:
l=[1,2,3,4]
for i in range(0,len(l)):
for j in range (i+1,len(l)):
print l[i],l[j]
但使用itertools
的解决方案可以更容易推广。