2016-11-19 64 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

从答案我达到了解决方案,我的先前的代码有一些错误,这是给这个错误。我正在调试那部分 –

相关问题