2014-03-30 70 views

回答

20

你在列表中有一個列表,所以它不按你認爲應該的方式工作。然而你的嘗試是絕對正確的。按照以下步驟操作:

' '.join(word[0] for word in word_list) 

其中word_list是上面顯示的列表。

>>> word_list = [['obytay'], ['ikeslay'], ['ishay'], ['artway']] 
>>> print ' '.join(word[0] for word in word_list) 
obytay ikeslay ishay artway 

Tobey likes his wart

+0

非常感謝!我不明白它是如何變成列表的列表。在編碼中,我創建了一個空列表,然後將這些單詞添加到它中。列表中的列表對我來說肯定是複雜的東西 – user3477556

+0

@ user3477556,也許,更好的做法是修改代碼的附加部分,這樣就不會最終解決這個問題,並導致更多的複雜問題。豬拉丁語? :) – sshashank124

+0

在另一個將普通單詞變成明膠的函數中,我也將新的明膠單詞添加到空列表中。我把它全部修好了,'join'函數正常工作:D非常感謝您的幫助! – user3477556

1

這是一個字符串列表。所以,你需要到連鎖字符串列表,與chain.from_iterable這樣

from itertools import chain 
print " ".join(chain.from_iterable(strings)) 
# obytay ikeslay ishay artway 

這將是有效的,如果我們第一次轉換鏈迭代到一個列表,這樣

print " ".join(list(chain.from_iterable(strings))) 
+1

Downvoter,請讓我知道這個答案有什麼問題。 – thefourtheye

+1

我不是downvoter,但可能是因爲他/她認爲解決方案太複雜了。老實說,我不知道。 :P – sshashank124

0

您還可以使用reduce

l = [['obytay'], ['ikeslay'], ['ishay'], ['artway']] 
print " ".join(reduce(lambda a, b: a + b, l)) 
#'obytay ikeslay ishay artway' 
相關問題