嵌套列表——改变嵌套列表的结构(减少嵌套)



所以我目前正在学习如何预处理文本,不幸的是,我在提取过程中遇到了一个错误,因为"太多的值要解包">. 我认为这个问题是由于我的列表目前是如何由一个函数输出的。

我的目标是把一个句子中的每个单词都作为一个列表的一部分,这个列表包含所有的句子。

目前,如果我打印我的training_data[0],输出是:

[[('B-Actor', 'steve_PRPVBP'), ('I-Actor', 'mcqueen_VBN'), ('O', 'provided_VBN'), ('O', 'a_DT'), ('B-Plot', 'thrilling_NN'), ('I-Plot', 'motorcycle_NN'), ('I-Plot', 'chase_NN'), ('I-Plot', 'in_IN'), ('I-Plot', 'this_DT'), ('B-Opinion', 'greatest_JJS'), ('I-Opinion', 'of_IN'), ('I-Opinion', 'all_DT'), ('B-Plot', 'ww_NNP'), ('I-Plot', '2_NNP'), ('I-Plot', 'prison_NNP'), ('I-Plot', 'escape_NN'), ('I-Plot', 'movies_NNS')]]

是否有任何方法来重组我的列表,这样我只得到[()]的输出,我认为我有太多嵌套列表目前。下面是我想要的输出片段:

[('B-Actor', 'steve_PRPVBP'), ('I-Actor', 'mcqueen_VBN'), ('O', 'provided_VBN'), ('O', 'a_DT'), ('B-Plot', 'thrilling_NN'), ('I-Plot', 'motorcycle_NN'), ('I-Plot', 'chase_NN'), ('I-Plot', 'in_IN'), ('I-Plot', 'this_DT'), ('B-Opinion', 'greatest_JJS'), ('I-Opinion', 'of_IN'), ('I-Opinion', 'all_DT'), ('B-Plot', 'ww_NNP'), ('I-Plot', '2_NNP'), ('I-Plot', 'prison_NNP'), ('I-Plot', 'escape_NN'), ('I-Plot', 'movies_NNS')]

提供更多上下文,当前使用以下测试:

print(len(training_data))
print(len(training_data[0]))
print(len(training_data[0][0]))
我得到的输出是:
7816
1
17

我希望能够访问我的列表,使上面的输出为:

7816
17
2

使用from_iterablesfromitertools

import itertools
flat_list = [list(itertools.chain.from_iterable(l)) for l in training_data]

最新更新