for循环中修改列表错误原因

2021-06-07  本文已影响0人  06am

for循环是一种遍历列表的有效方式,但不应该在for循环中修改列表

unconfirmed_users = ["alice", 'brian', 'eric']
confirmed_users = []

print("Before:")
print(unconfirmed_users)
print(confirmed_users)
print()

#尝试修改
for user in unconfirmed_users:
    print(f"Verifying user: {user.title()}")
    confirmed_users.append(user)
    unconfirmed_users.remove(user)

print("\nconfirmed users:")
for user in confirmed_users:
    print(user.title())

print()

print("After:")
print(unconfirmed_users)
print(confirmed_users)

运行结果:

结果
原因:
第一次执行结果(计数i = 0)confirmed_users = [‘alice’],unconfirmed_users = ['brian', 'eric']
第二次执行(计数i = 1),在列表unconfirmed_users[1]中,将删除'eric',结果是unconfirmed_users = ['brian', ],confirmed_users = [’alice‘,'eric']
执行结束。
上一篇下一篇

猜你喜欢

热点阅读