2009-11-29 3 views

답변

85

join은 문자열의 목록을합니다, 그래서

>>> e = ('ham', 5, 1, 'bird') 
>>> ','.join(map(str,e)) 
'ham,5,1,bird' 

첫 번째 또는

>>> ','.join(str(i) for i in e) 
'ham,5,1,bird' 
+4

repr() 대신 str()을 사용하면 손실 정보가 발생할 수 있습니다. –

+1

그것은 당신의 목적에 달려 있지만,'str()'은 일반적으로 사용자에게 무엇을 보여주기를 원하는가 (즉, OP가 원했던 로그 파일). –

+1

사실. str (__str__ 이상, __unicode__)은 사람을위한 것입니다. 그리고 문제는 인간을위한 로그 파일을 말합니다. 그래서이 경우에는 str()이 __repr__보다 낫다고 생각합니다. – extraneon

10

join()은 정수가 아닌 문자열에서만 작동합니다. ','.join(str(i) for i in e)을 사용하십시오.

+0

괄호가없는 튜플에 대한 주석은 훌륭합니다. –

3

사용 csv 모듈 어쩌면 더 파이썬 그들을 변환합니다. 쉼표를 포함하는 항목을 처리하는 방법에 대한 후속 질문을 저장하고 쉼표를 인용/이스케이프하는 데 사용한 문자를 포함하는 항목을 처리하는 방법에 대한 후속 질문을 저장합니다.

import csv 
e = ('ham', 5, 1, 'bird') 
with open('out.csv', 'wb') as f: 
    csv.writer(f).writerow(e) 

것은 그것을 확인 :

print open('out.csv').read() 

출력 :

ham,5,1,bird 
+3

불필요하게 복잡해 보입니다. –

+1

@LS : 모든 것이 그 것처럼 보이지 않습니다. 쉼표 등을 이스케이프 처리하지 않고도 쉼표 구분 기호를 사용하여 간단하게 매우 빠르게 풀립니다. –

4

당신은 단순히 먼저 목록에 튜플을 변환 더 나을 수 있습니다 : BTW

e = ('ham', 5, 1, 'bird') liste = list(e) ','.join(liste)