【发布时间】:2021-02-21 17:40:29
【问题描述】:
我正在尝试编写一个函数,该函数返回字符串中三个最常用单词的列表,但是当我尝试从字符串中删除不需要的标点符号时出现以下错误 "list.remove(x): x not在列表中”
例如,"//wont won't won't " 应该返回 ["won't", "wont"] 或 "a a a b c c d d d e e e e e" 应该返回 ["e", "d", "a"]有什么想法吗?
def top_3_words(text):
new_list = []
new_text = text.lower().split()
for word in new_text:
for char in word:
if char.isalpha():
pass
else:
new_text.remove(char)
Count = Counter(new_text)
most_occur = Count.most_common(3)
for l in most_occur:
new_list.append(l[0])
return new_list
【问题讨论】:
-
你的输出不清楚,写清楚点。
-
new_text是一个列表["//wont", "won't", "won't"],只有当它们出现在您的列表中时,您才能删除它们。在您的情况下,元素是"//wont"和"won't"。但是您正在尝试从列表中删除列表中存在的元素的字符,即"/"这是不正确的。因此,出现错误:“list.remove(x): x not in list”
标签: python list nested-lists