gpt4 book ai didi

python - del 似乎没有从列表中删除任何内容

转载 作者:行者123 更新时间:2023-11-28 22:25:20 28 4
gpt4 key购买 nike

for x,y in words:
for z in x:
if z in stopwords:
del x[x.index(z)]

这是我的代码。 words 中的数据是元组列表,其中元组如下所示:

(list of words, metadata)

我的代码的目的是从单词列表中删除所有停用词。唯一的问题是,之后没有删除停用词......

我到底做错了什么?我已经尝试过用

x.pop(x.index(z))

但这似乎并没有什么不同。

最佳答案

您可以使用嵌套列表理解简单地创建一个没有停用词的新列表:

stopwords = set(stopwords)  # just so "in" checks are faster
result = [([word for word in x if word not in stopwords], y) for x, y in words]

例如:

>>> stopwords = ['stop']
>>> words = [(['hello', 'you', 'stop'], 'somemeta')]
>>> stopwords = set(stopwords) # just so "in" checks are faster
>>> result = [([word for word in x if word not in stopwords], y) for x, y in words]
>>> result
[(['hello', 'you'], 'somemeta')]

请注意,您通常不应修改正在迭代的列表。这可能会导致很多难以追踪的错误。

关于python - del 似乎没有从列表中删除任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45544294/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com