这是一个很难解释的问题。我在玩 Python 的列表方法,尤其是del
索引对象。我想创建一个简单的脚本,它会创建一个从 1 到 100 的整数列表,然后是一个 for 循环,它会从列表中删除奇数。
这是我写的脚本:
def main():
num = list(range(1,101))
print(num)
for i in range(0,101):
del num[i]
print(num)
main()
似乎它会正常工作?我也是这么想的,直到我运行它。
我不知道为什么,但是当i
传递给del num[i]
索引时,数字本身翻了一番。
当我运行它时,我收到了IndexError: list assignment index out of range
.
当我将参数从 更改range(0,101)
为 时range(0,10)
,我发现它删除了从 1 到 20 的所有奇数。
换句话说,i
在索引不应该翻倍的时候。我能得到一些关于这方面的信息吗?