2012-04-26 47 views
1

可以說我有一個單詞列表,我想用逗號和空格分隔列出所有單詞。因此,舉例來說,可以說列表l包含的項['banana', 'apple', 'pear'],我想產生串"banana, apple, pear"生成字符串時用元素分隔的元素避免輸入冗餘

現在,這種方法我會用解決的問題如下:

s = "" 
s += l[0] 
for i in range(1, len(l)): 
    s += ", %s" % l[i] 

或者與上述非常類似的東西。問題是第2行的額外任務看起來有點雜亂和冗餘,看起來與第4行幾乎完全相同,只是增加了逗號和空格。雖然這對於非常小的表達式來說並不是太大的問題,但它可能會讓人討厭而不愉快,尋找大型表達式。例如,如果不是l[0],我們可能有foo(bar(l[0]) + foobar(l[0]) + ...,只是覺得不得不重複下面幾行相似的語句。沒有額外的冗餘,是否有更好的方法來實現所期望的結果?這可能包括特定於Python標準庫的答案或可用於多種語言的一般模式。

回答

3

在Python,人們會簡單地寫爲:

s = ', '.join(l) 

例如:

>>> l = ['banana', 'apple', 'pear'] 
>>> ', '.join(l) 
'banana, apple, pear' 

這可能包括[...],可以跨多個語言中使用的一般模式。

在其他語言中,我通常使用的模式如下(在僞這裏的Java表示):

for (int i = 0; i < l.length; i++) { 
    if (i != 0) { 
    s += ", "; 
    } 
    s += l[i]; 
} 

這樣就避免了重複作業。

+0

哇,好了,這是一個爲Python調用極爲明顯。謝謝,只要十分鐘時間過去,我會立即將其設置爲正確的答案 – eltommo 2012-04-26 07:31:46

0

您可以使用加入:s = ', '.join(l)