python - 不明白为什么这段代码不起作用,如果有人能正确解释,我会很感激
问题描述
我正在尝试删除每个元素中少于 4 个字符的元素并且它确实有效
使用 while-loop 但我不明白为什么它不适用于 for-loop - 请帮助,谢谢
words = ['elephant','cat','dog','bird','lion']
for i in range(len(words)):
word = words[i]
if len(word)<4:
word.pop(i)
解决方案
总的来说,您的问题来自:
word.pop(i)
您正在尝试在字符串上使用 pop ,而不是在您的列表中。您的代码也不是“Pythonic”,因为它似乎在尝试使用索引值,而您可以在不使用它的情况下对列表进行交互。
可以简化您的代码以创建一个包含所需单词的新列表。
words = ['elephant','cat','dog','bird','lion']
output_words = []
for word in words:
if len(word) < 4:
pass
else:
output_words.append(word)
print(output_words)
推荐阅读
- java - 面临肥皂网络服务的一些问题。输入 WSDL 中提到的正确参数
- java - 连续打印日志 - 仅打印第一个(无可见错误)
- android - 调用GET HTTP时android上的ionic3错误
- sql - 第二高的薪水
- javascript - 提交表单以更改语义 UI 中的下拉列表?
- c - 通用链表:每当出现左括号时添加子链接
- redis - SUNION 用于 Redis 中具有相同模式的所有键
- mysql - 在 SELECT 语句中设置两个变量 - MySQL
- json - 从 Json 中提取地图将所有数字解释为 BigInt
- android - Android Studio 的模块设置不影响 gradle 文件