Python:NLTK:列表列表的访问元素

时间:2015-02-24 09:30:44

标签: python nltk

我在列表化之后有以下列表列表:

[['Who', 'are', 'you', '?'],
 ['I', 'do', 'not', 'know', 'who', 'you', 'are'],
 ['What', 'is', 'your', 'name', '?']]

现在我希望有一个包含“简单”元素的列表,例如:

['Who','are','you','?','I','do','not','know','who'...]

我已经尝试过我能想到的一切,使用(嵌套)for循环,(嵌套)循环...我要么得到列表['Who','Who','Who',...](依此类推),要么{{1} }}

有人可以帮帮我吗?谢谢!

4 个答案:

答案 0 :(得分:1)

你可以试试这个

Python> = 2.6,使用itertools.chain.from_iterable(),不需要解压缩列表:

>>> import itertools
>>> list2d = [["who", "are", "you", "?"]....]
>>> merged = list(itertools.chain.from_iterable(list2d))

答案 1 :(得分:0)

您可以在python中使用extend函数

In [1]: a= [['Who', 'are', 'you', '?'], ['I', 'do', 'not', 'know', 'who', 'you', 'are'], ['What', 'is', 'your', 'name', '?']]
In [2]: b = []
In [3]: for list_ in a:
    b.extend(list_)
   ...:     

In [4]: b
Out[4]: ['Who','are','you','?','I','do', ...]

答案 2 :(得分:0)

您要合并列表吗?

flat_list = []
for list_item in nested_list:
    flat_list += list_item

>>flat_list
>>['Who', 'are', 'you', '?', 'I', 'do', 'not', 'know', 'who', 'you', 'are', 'What', 'is', 'your', 'name', '?']

可以查看可能的重复项here

答案 3 :(得分:0)

只是在看到其他答案时的记录,更pythonic的方式是使用nested list comprehension,如下所示:

original_list = [[1], [2, 3]]
flat_list = [i for sublist in original_list for i in sublist]