2014-12-31 2 views
3

튜플의 목록이 있습니다. 튜플의 모든 요소는 문자열입니다. 다음과 같이 보일 수 있습니다 :튜플 목록을 단일 문자열로 변환하는 방법

my_list = [('a', 'b', 'c'), ('d', 'e')] 

'a b c d e'처럼 보이도록 문자열로 변환하고 싶습니다. 나는 '.join (...)'을 사용할 수 있지만, 나는 어떤 인수를 사용해야하는지 확신 할 수 없다.

답변

5

당신은 목록을 평평하게 할 수 있습니다, 다음 조인을 사용 :

>>> import itertools 
>>> ' '.join(itertools.chain(*my_list)) 
'a b c d e' 

또는 지능형리스트로 :

>>> ' '.join([i for sub in my_list for i in sub]) 
'a b c d e' 
1

당신은 튜플을 반복하고 각 반복하는 지능형리스트를 사용할 수 있습니다 튜플 (tuple).

a = [] 
for tup in my_list: 
    for item in tup: 
     a.append(item) 
0
my_list = [('a', 'b', 'c'), ('d', 'e')] 
print "".join(["".join(list(x)) for x in my_list]) 

이 시도 :

my_list = [('a', 'b', 'c'), ('d', 'e')] 

s = ' '.join([item for tup in my_list for item in tup]) 

목록 이해는 동일합니다.

+1

변환 튜플은 필요하지 조인 내부에 나열합니다. –

2
>>> my_list = [('a', 'b', 'c'), ('d', 'e')] 
>>> ' '.join(' '.join(i) for i in my_list) 
'a b c d e' 
+0

'str.join'을 사용할 때 생성기 표현식이 아닌 목록 이해력을 사용해야합니다. [이 답변] (http://stackoverflow.com/a/9061024/3005188)을 참조하십시오. – Ffisegydd

1
my_list = [('a', 'b', 'c'), ('d', 'e')] 

L = [] 

for x in my_list: 
    L.extend(x) 

print ' '.join(L) 


output: 
'a b c d e' 
0

목록 이해는 질문에 최고의 하나 라이너 솔루션입니다 : -

my_list = [('a', 'b', 'c'), ('d', 'e')] 
s = ' '.join([elem for item in my_list for elem in item]) 
관련 문제