2013-05-27 2 views
3

저는 파이썬에 익숙하지 않으며 파이썬의 바로 가기에 대해 많이 모릅니다. I 출력이이 것입니다 할 수있는이두 개의 목록을 사용자 지정 조건이있는 튜플 목록에 병합하십시오.

[('a',1),('a',2),('a',3),('a',4),('b',1), ('b',2) .....] 

한 가지 간단한 방법처럼해야하는 방식으로이 목록을 병합하여 튜플의 목록을해야

firstList = ['a','b','c'] and 
secondList = [1,2,3,4] 

: 나는이 개 목록이

outputList = [] 
for i in firstList: 
    for j in secondList: 
     outputList.append((i,j)) 

이 두 for 루프가 나에게 어떤이이 일을 Python으로 기능을 내장 더 좋은 방법 (덜 복잡) 또는 headache.Is을했다? 당신의 도움이 감사 할 것입니다.

+1

질문 제목에서 "사용자 지정 조건"이란 무엇을? –

+0

@Inbar Rose : 사과드립니다 ... '관습'대신 '주어진'것이어야합니다. – Harshal

+0

음 - 주어진 조건은 무엇입니까? –

답변

2
>>> firstList = ['a','b','c'] 
>>> secondList = [1,2,3,4] 
>>> from itertools import product 
>>> list(product(firstList, secondList)) 
[('a', 1), ('a', 2), ('a', 3), ('a', 4), ('b', 1), ('b', 2), ('b', 3), ('b', 4), ('c', 1), ('c', 2), ('c', 3), ('c', 4)] 

또한 여기의 더 좋은 버전의 당신의 지능형리스트를 사용 for 루프 :

>>> [(i, j) for i in firstList for j in secondList] 
[('a', 1), ('a', 2), ('a', 3), ('a', 4), ('b', 1), ('b', 2), ('b', 3), ('b', 4), ('c', 1), ('c', 2), ('c', 3), ('c', 4)] 
+0

좋은 답변, +1. :) 그냥 내가 어떻게 대답 했을까 (목록 이해 부분) –

+0

이것은 내가 무엇을 찾고 있었는지 ... 고마워요! 어느 쪽이 더 빠른가? – Harshal

+0

@ user1863122 나는 항상 '제품'으로 가고 싶지만 거대한 목록에서는 더 빨라야하지만 그 차이는 작은 것들에서는 무시할 만하다. – jamylak