【发布时间】:2019-12-26 00:40:22
【问题描述】:
我最近开始学习 python,但我还不是很擅长。 在尝试简单地从列表中删除项目时,我偶然发现了以下问题:“列表索引必须是整数或切片,而不是 str”。虽然我大致了解了问题的含义,但我仍然没有看到我做错了什么。代码如下:
list1=["1","2","4","5","3"]
for i in list1:
if list1[i] in ["3"]:
list1.pop(i)
break
print(list1)
这是完整的错误:
TypeError Traceback (last recent call last) in 4 for i in list1: ----> 5 if list1[i] in ["3"]: 6 list1.pop(i)
TypeError: 列表索引必须是整数或切片,而不是 str
【问题讨论】:
-
当您执行
for i in list1时,您基本上是在循环遍历列表的元素,每个i是"1"或"2"。现在你不能用这个i索引列表,你需要使用for i in range(len(list1))。此外,您不应该在循环时修改列表。
标签: python python-3.x list