尝试在python中筛选列表时出现意外输出

2024-06-24 11:43:32 发布

您现在位置:Python中文网/ 问答频道 /正文

假设有一个单词列表,我想删除所有包含特定字母的单词

这就是我试过的

Wordlist = ["abcd","cdef","efgh","ghij","ijkl","klmn","nope","wow"]
BadLetters = "d"


for word in Wordlist:
    for BadLetter in BadLetters:
        if (word.count(BadLetter) > 0):
            Wordlist.remove(word)

print(Wordlist)

预期输出:“abcd”和“cdef”已删除 ['efgh', 'ghij', 'ijkl', 'klmn', 'nope', 'wow']

实际输出:仅删除“abcd” ['cdef', 'efgh', 'ghij', 'ijkl', 'klmn', 'nope', 'wow']

问题可能是由什么引起的?如何解决


Tags: infor单词wordabcdwordlistcdefwow
2条回答

如果您试图删除包含“d”的单词:

  1. 逐字逐句
  2. 检查if BadLetters in word:内是否存在坏字母
  3. 删除包含坏字母的单词

您可以进一步解释您希望代码解决的问题

在迭代列表时从列表中删除元素不是一个好主意

试试这个:

Wordlist = ["abcd","cdef","efgh","ghij","ijkl","klmn","nope","wow"]
BadLetters = "d"

Wordlist_new = []
for word in Wordlist:
    for BadLetter in BadLetters:
        if (word.count(BadLetter) > 0):
            pass # Wordlist.remove(word)
        else:
            Wordlist_new.append(word)

print(Wordlist)
print(Wordlist_new)

相关问题 更多 >