2009-11-29 86 views

回答

85

join只需要字符串列表,所以它們轉換第一

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

或許更Python

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

使用str()而不是repr()會導致信息丟失。 – 2009-11-29 13:32:52

+1

這取決於你的目的是什麼,但是'str()'通常是你想向用戶展示的東西(即在一個日誌文件中,這是OP想要的東西)。 – 2009-11-29 14:07:49

+1

確實。 str(__str__或更好,__unicode__)適用於人類。問題指出一個日誌文件,這是爲人類。所以在這種情況下,我認爲str()比__repr__好。 – extraneon 2009-11-29 16:50:57

10

join()只適用於字符串,不適用於整數。使用','.join(str(i) for i in e)

+0

關於不帶圓括號的元組的評論很棒。 – 2015-10-30 07:58:58

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

似乎不必要的複雜。 – 2012-12-18 19:39:17

+1

@LS:看起來並非如此。簡單地使用逗號分隔符而不用擔心轉義逗號等問題的速度非常快。 – 2012-12-28 20:43:26

4

你可能會更好簡單的元組轉換成列表第一:

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

相關問題