python - 无法将列表附加到另一个列表中。每次我附加到它时,它里面的前一个列表都会被删除
问题描述
请原谅我的菜鸟。我有一个列表列表:
print(tokens)
[['What', "'s", 'my', 'name', '?'], ['My', 'name', 'is', 'Aditya', '.'], ['My', 'name', 'is', 'Glen'],
['My', 'name', 'is', 'Kenta', '.'], ['My', 'name', 'is', 'Keita'], ['My', 'name', 'is', 'Ganchan'],
['My', 'name', 'is', 'Anna', '.'], ['My', 'name', 'is', 'Tho'], ['My', 'name', 'is', 'Joe', '.']]
我要做的是删除我下载并导入的 Python NLTK 库中默认停用词语料库中给出的所有停用词:
stop_words = set(stopwords.words('english'))
为此,我使用嵌套的 for 循环打开列表,并尝试将它们与停用词匹配。但是,当我尝试将其包装回嵌套列表时,它只包含最后一个列表。
编码:
filtered_tokens = []
filtered_tokens_list = []
for token in tokens:
filtered_tokens.clear()
for t in token:
if t.upper() not in (name.upper() for name in stop_words):
filtered_tokens.append(t)
filtered_tokens_list.append(filtered_tokens)
filtered_tokens_list
输出:
[['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.'],
['name', 'Joe', '.']]
我试图通过filtered_tokens_list
在每次迭代中打印出来来查看每次迭代的外观
for token in tokens:
filtered_tokens.clear()
for t in token:
if t.upper() not in (name.upper() for name in stop_words):
filtered_tokens.append(t)
filtered_tokens_dict.append(filtered_tokens)
print(filtered_tokens_dict)
输出是:
[["'s", 'name', '?']]
[['name', 'Aditya', '.'], ['name', 'Aditya', '.']]
[['name', 'Glen'], ['name', 'Glen'], ['name', 'Glen']]
[['name', 'Kenta', '.'], ['name', 'Kenta', '.'], ['name', 'Kenta', '.'], ['name', 'Kenta', '.']]
[['name', 'Keita'], ['name', 'Keita'], ['name', 'Keita'], ['name', 'Keita'], ['name', 'Keita']]
[['name', 'Ganchan'], ['name', 'Ganchan'], ['name', 'Ganchan'], ['name', 'Ganchan'], ['name', 'Ganchan'], ['name', 'Ganchan']]
[['name', 'Anna', '.'], ['name', 'Anna', '.'], ['name', 'Anna', '.'], ['name', 'Anna', '.'], ['name', 'Anna', '.'], ['name', 'Anna', '.'], ['name', 'Anna', '.']]
[['name', 'Tho'], ['name', 'Tho'], ['name', 'Tho'], ['name', 'Tho'], ['name', 'Tho'], ['name', 'Tho'], ['name', 'Tho'], ['name', 'Tho']]
[['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.'], ['name', 'Joe', '.']]
出于某种原因,整个列表都被最新的内容覆盖了filtered_tokens
我正在寻找的输出是:
[["'s", 'name', '?'],['name', 'Aditya', '.'],['name', 'Glen'],['name', 'Kenta', '.'],['name', 'Keita'],
['name', 'Ganchan'],['name', 'Anna', '.'],['name', 'Tho'],['name', 'Joe', '.']]
这很莫名其妙,我还没有在网上看到过这样的事情。非常感谢您的帮助!
解决方案
推荐阅读
- javascript - 使用向量的碰撞检测器
- android - 反应本机反应导航安全区域问题
- google-docs - 基于用户启用的下拉选项
- linq - 在 EF Core/LINQ 中查询多对多表
- javascript - 单击提交按钮后,反应表单未在屏幕上显示正确的输入
- apache-flink - 如何在 HDFS 中以 parquet 文件格式写入实时数据流 flink 数据
- ios - UIKit UIViewController viewDidLoad完成时如何在SwiftUI中获得通知
- javascript - 如何将叠加层添加到材质 UI 表格行?
- django - PostgreSQL 命令在 virtualenv 中不起作用
- flutter - 导航到新页面时防止颤动块状态更改