不明白为什么列表不能清空,转移。
san_ord = ['香菜', '葱花', '油条', '鸡蛋']
finished_san = []
for i in san_ord:
print(f'I made your "{i}".')
finished.append(i)
san_ord.remove(i)
print(finished_san)
print(san_ord)
I made your "香菜".
I made your "油条".
[]
['葱花', '鸡蛋']
想用remove方法在循环过程中清空san_ord列表,并转移到finished_san列表中。
最后只显示两个元素,不清楚什么原因
当使用for遍历列表的同时去修改列表本身的长度,就会发生这样的问题,因为列表长度变了,所以for遍历跳过了一些元素。可以遍历列表的副本解决这个问题。
另外finished_san列表名字在for循环里写错了,所以会报错。
for i in san_ord[:]:
print(f'I made your "{i}".')
finished_san.append(i)
san_ord.remove(i)
print(finished_san)
print(san_ord)
运行结果
I made your "香菜".
I made your "葱花".
I made your "油条".
I made your "鸡蛋".
['香菜', '葱花', '油条', '鸡蛋']
[]