使用itertools.chain.from_iterable时,'NoneType'对象不可迭代

时间:2016-11-19 18:59:11

标签: python apache-spark-sql

我使用spark

中的以下行生成字符串列表
l = text.map(lambda x: tokenize(x[0])).collect()

l的输出看起来像这样(长列表的子集):

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

这是字符串值列表的列表。我想要一组独特的名称,因此我的第一步是使用以下行合并它。 (稍后我将使用set来获取唯一值)

list(itertools.chain.from_iterable(l))

但是我收到了这个错误

'NoneType'对象不可迭代

有人可以帮忙。

1 个答案:

答案 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'])