2014-02-17 85 views
0

我有一個列表許多一對多的關係,說terms = ['A', 'B', 'C', 'D']Python中創建一個列表

這是創造最好的方式列表中,列表或列表的元組的許多一對多像這樣的關係;

[['A','B'],['A','C'],['A','D'],['B','C'],['B','D'],['C','D']] 

回答

3

使用itertools.combinations()

from itertools import combinations 

list(combinations(terms, r=2)) 

演示:

>>> from itertools import combinations 
>>> terms = ['A', 'B', 'C', 'D'] 
>>> list(combinations(terms, r=2)) 
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')] 

這些元組,沒有名單,但是這很容易,如果這糾正了一個問題:

>>> map(list, combinations(terms, r=2)) 
[['A', 'B'], ['A', 'C'], ['A', 'D'], ['B', 'C'], ['B', 'D'], ['C', 'D']] 
+0

那很酷!太感謝了! – richie