【发布时间】:2017-09-13 14:03:02
【问题描述】:
我正在尝试在 python 中编写一个 for 循环来弹出列表中的所有项目,但只有两个,所以我尝试了这个:
guest = ['john', 'phil', 'andy', 'mark', 'frank', 'joe']
for people in guest:
popped_guest = guest.pop()
print("I am sorry " + popped_guest + " I can no longer invite you to dinner")
这就是我运行它时得到的结果:
对不起,乔,我不能再邀请你吃饭了
很抱歉弗兰克,我不能再邀请你吃饭了
对不起,马克我不能再邀请你吃饭了
所以它只弹出 3,但有没有办法让它弹出 6 中的 4?我尝试添加一个 if 语句:
guest = ['john', 'phil', 'andy', 'mark', 'frank', 'joe']
for people in guest:
if people > guest[1]:
popped_guest = guest.pop()
print("I am sorry " + popped_guest + " I can no longer invite you to dinner")
我本来以为 'phil' 会是 1,所以它会弹出最后 4 个,但是当我运行程序时它什么也没返回。那么可以在一个for循环中做吗?
【问题讨论】:
-
if people > guest[1]对您意味着什么? -
您正在迭代一个列表,同时对其进行变异。除非您了解自己在做什么以及如何安全地做,否则不要这样做。
-
你想说那个字符串 > 另一个字符串.. 不能工作
-
@Astrom 好吧,它可以工作,只是没有像 OP 认为的那样......
标签: python python-3.x for-loop