python - 意外的输出试图过滤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']
什么可能导致问题,我该如何解决?
解决方案
在迭代列表时从列表中删除元素不是一个好主意。
尝试这个:
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)
推荐阅读
- ios - 核心音频渲染回调中的时间戳可以为空吗?
- tensorflow - 如何拆分 TensorFlow 数据集?
- r - ggplot2 - 因子水平累积计数的 geom_line
- java - 如何设置 Firebase Storage 存储订阅???所以用户使用我的应用程序,但他们必须为额外的存储付费
- batch-file - 如何批量组合变量和文本字符串?
- c - 这是在 C 中进行标记指针的可移植方式吗?
- python - 使用变量名的嵌套字典项的 Django 模板语法
- json - Xamarin 形式。无法在列表中显示 json 对象
- json - 将数组转换为以 ID 作为索引的 JSON (MongoDB / Express)
- sql - 连接两个表,其中一些列合并,其他列必须为空