2014-11-19 2 views
2

의리스트에있는 모든 두 요소를 어떻게처럼, 나는 목록에있는 모든 쌍의 조합을 반복 수행순회 파이썬

list = [1,2,3,4] 

출력 :

1,2 
1,3 
1,4 
2,3 
2,4 
3,4 

감사합니다!

+0

을 루프와 슬라이스를 위해 사용? – fredtantini

답변

3

사용 itertools.combinations :

>>> import itertools 
>>> lst = [1,2,3,4] 
>>> for x in itertools.combinations(lst, 2): 
...  print(x) 
... 
(1, 2) 
(1, 3) 
(1, 4) 
(2, 3) 
(2, 4) 
(3, 4) 

BTW, 변수 이름으로 list을 사용하지 마십시오. 이 함수는 내장 함수/유형 list을 음영 처리합니다.

1

다음과 같이 루프 중첩을 사용할 수 있습니다 itertools.combinations

>>> import itertools 
>>> list(itertools.combinations([1,2,3,4], 2)) 
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] 
-2

사용 :

list = [1,2,3,4] 
for x in list : 

    for y in list : 

     print x, y 
+3

대신 (1,1) 및 (3,1)과 (4,4)를 얻습니다.) 대신 데카르트 곱을 생성합니다. – DSM