我遇到一个问题,我的for循环只应该运行一次,而应该循环两次。但是,这似乎仅在我的计算机上发生。
当我在trinket中运行以下代码时:
listOne = ['rat', 'hat', 'hat']
listTwo = []
while True:
move = input("enter command: ")
for i in listOne:
if i == move:
listTwo.append(i)
listOne.remove(i)
print(listOne)
print(listTwo)
我得到:
enter command: hat
['rat']
['hat', 'hat']
我想要的是什么。但是,当我在终端中运行完全相同的代码时,for循环仅运行一次,我得到:
enter command: hat
['rat', 'hat']
['hat']
我想念什么吗?
答案 0 :(得分:0)
您的代码缩进对我来说很奇怪。应该是这样的:
listOne = ['rat', 'hat', 'hat']
listTwo = []
while True:
move = input("enter command: ")
for i in listOne:
if i == move:
listTwo.append(i)
# listOne.remove(i)
print(listOne)
print(listTwo)
这将打印如下:
mayankp@mayank:~/$ python3 t.py
enter command: hat
['rat', 'hat', 'hat']
[]
['rat', 'hat', 'hat']
['hat']
['rat', 'hat', 'hat']
['hat', 'hat']
由于要从ListOne中删除项目,因此循环不会继续进行。因此,将其注释掉。 让我知道这是否有效。