list = [1,2,3,4]
我想獲得下面的結果並將它們存儲在csv文件中。 (總共6行)如何配對python列表中的值
1,2
1,3
1,4
2,3
2,4
3,4
是否有這樣的功能,或者我該如何完成並將其存儲在csv文件中?
list = [1,2,3,4]
我想獲得下面的結果並將它們存儲在csv文件中。 (總共6行)如何配對python列表中的值
1,2
1,3
1,4
2,3
2,4
3,4
是否有這樣的功能,或者我該如何完成並將其存儲在csv文件中?
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)]
使用itertools.combinations。它在Python 2.6+中內置。
import itertools
pairs = itertools.combinations(list, 2)
一種選擇是使用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)
。
這是很簡單的做自己:
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
解決方案可以被推廣更加容易。
OP:使用''\ n'.join(','。join(map(str,v))for v in itertools.combinations(x,2))'獲得所需的輸出。 –