Python ';非类型';对象在使用itertools.chain.from_iterable时不可iterable

Python ';非类型';对象在使用itertools.chain.from_iterable时不可iterable,python,apache-spark-sql,Python,Apache Spark Sql,我使用spark中的以下行生成一个字符串列表 l = text.map(lambda x: tokenize(x[0])).collect() l的输出如下所示(长列表的子集): 这是一个字符串值列表。我需要一组唯一的名称,因此我的第一步是使用以下行合并它。(稍后我将使用set获取唯一值) 但是我得到了这个错误 “非类型”对象不可编辑 有人可以帮忙吗。无法复制您的错误,以下内容适用于Python 2.7 >>> print set(itertools.chain.from_i

我使用spark中的以下行生成一个字符串列表

l = text.map(lambda x: tokenize(x[0])).collect()
l的输出如下所示(长列表的子集):

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

但是我得到了这个错误

“非类型”对象不可编辑


有人可以帮忙吗。

无法复制您的错误,以下内容适用于Python 2.7

>>> print set(itertools.chain.from_iterable(l))
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural'])
但是,您可以使用以下生成器。它的功能相当于
chain()


你能发更多的代码吗?该错误表明您的列表
l
相当于
None
。让我相信你的消息来源里还有其他的东西。打印
l
-里面有什么东西吗?从答案中,我得出了一个解决方案,我以前的代码有一些错误,导致了这个错误。我现在正在调试这一部分,从我得到的答案来看,我以前的代码有一些错误,导致了这个错误。我现在正在调试那个部分
list(itertools.chain.from_iterable(l))
>>> print set(itertools.chain.from_iterable(l))
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural'])
>>> print set(inner for sub_list in l for inner in sub_list)
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural'])