2012-04-11 3 views
1

저는 파이썬에 조금 익숙합니다.두리스트를 병합하고 파이썬의 분리자를 사용하여 이에 합치십시오.

어떻게 두 목록 (두 문자열)을 병합하고 그에 따라 파이썬에 가입합니까?

을 감안할 때 다음과 같은 입력 :

lista=['1','2','3'] 
listb=['a','b','c'] 

나는 다음과 같은 출력 싶습니다

['1|a','2|b','3|c'] 
+1

은 해당 문자열입니까? – jterrace

+0

또는 적어도 출력은 문자열이어야합니다. '|'기호는 파이썬 에서처럼 작동하지 않습니다. 또는'lista' 요소를 키로,'listb' 요소를 항목으로 갖는 사전을 만들 수 있습니다. 'my_dictionary = dict (zip (lista, listb))' – ely

+0

@jterrace 예 그들은 둘 다 문자열입니다. – chrisjlee

답변

10

실제로 문자열을 사용하는 의미 가정을이 작동합니다 :

>>> lista=[1,2,3] 
>>> listb=['a','b','c'] 
>>> ["%s|%s" % (a,b) for a,b in zip(lista, listb)] 
['1|a', '2|b', '3|c'] 
1

이있다 아마도 더 우아한 것보다

map(lambda(x,y): "%s|%s" % (x,y), zip(lista, listb)) 
3

두 목록에 문자열이있는 경우에만 작동합니다. 그렇지 않으면 형식 문자열 솔루션 중 하나 (예 : %s|%s)를 사용하십시오.

map('|'.join, zip(lista, listb)) 
+0

당신은 맞지만 OP는 두 문자열이라고 주장합니다. –

+0

+1 즉시 변경되었습니다. : ^) – DSM

2

지능형리스트는 일반적으로 더 읽을 수 있지만,이 작업이 목록의 수에 행복이 스케일을 할 수있는 좋은 방법입니다, 잘 읽고 가입, 그래서 나는 또한 다른 답변이 합병을 제시 것입니다 :

>>>lista=['1','2','3'] 
>>>listb=['a','b','c'] 
>>>["|".join(items) for items in zip(lista, listb)] 
['1|a', '2|b', '3|c'] 
+0

lista에있는 문자열 대신 정수 인 경우 항목을 나타내는 방법. 왜냐하면 lista = [1, 2, 3]을 시도하면 타입 에러가 발생하기 때문입니다. 시퀀스 아이템 0 : 기대되는 문자열, int가 있습니다. – Praneeth

+1

정수에서 문자열을 만들어야합니다 -'str.join()'은 문자열을 기대합니다. 가입하면 정수를 제공합니다. 모든 정수에서'str (i) '를 호출하면됩니다. 예 : zip에있는 항목에 대한 [[ "|".join (items)] (map (str, listints), liststrings)]' –

관련 문제