2016-11-19 47 views
0

我生成使用下面的行火花字符串列表的列表L的「NoneType」對象不是可迭代,同時使用itertools.chain.from_iterable

l = text.map(lambda x: tokenize(x[0])).collect() 

輸出看起來像這樣(一長列的子集):

[['@always_nidhi'], ['@always_nidhi', '@OnlyDancers', '@IcelandNatural'], ['@always_nidhi', '@OnlyDancers', '@IcelandNatural']] 

這是一個字符串值列表。我想要一組獨特的名稱,因此我的第一步是使用以下行合併它。 (後來我將使用一套獲得唯一值)

list(itertools.chain.from_iterable(l)) 

但我得到這個錯誤

「NoneType」對象不是可迭代

能有人幫。

+0

你能發佈更多的代碼?這個錯誤表明你的列表'l'等於'None'。帶領我相信你的來源還有其他事情正在發生。 – ospahiu

+0

[抓住EXCETION(https://docs.python.org/3/tutorial/errors.html#handling-exceptions)和打印'''l''' - 有它什麼? – wwii

+0

從答案我達到了解決方案,我的先前的代碼有一些錯誤,這是給這個錯誤。我正在調試該部分現在 –

回答

1

無法複製你的錯誤,Python的2.7以下的作品。

>>> print set(itertools.chain.from_iterable(l)) 
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural']) 

但是,您可以使用以下生成器。它在功能上等同於chain()

>>> print set(inner for sub_list in l for inner in sub_list) 
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural']) 
+0

從答案我達到了解決方案,我的先前的代碼有一些錯誤,這是給這個錯誤。我正在調試那部分 –

相關問題