我在python3.0中的for循环没有完全迭代?

时间:2019-05-01 06:31:05

标签: python python-3.x

给出4个项目的列表。 我需要迭代地从列表中删除一个项目。 在每次迭代中,我需要显示: -删除了什么 -新列表

我正在尝试:

import random
teams=["Tottenham", "Ajax", "Barcelona", "Liverpool"] 
for i in teams:
    t1=random.randint(0, len(teams)-1)
    print(teams[t1])
    teams.remove(teams[t1])
    print(teams)

我得到这个:

Ajax

[“热刺”,“巴塞罗那”,“利物浦”]

利物浦

[“热刺”,“巴塞罗那”

但是应该得到以下内容:

Ajax

[“热刺”,“巴塞罗那”,“利物浦”]

利物浦

[“热刺”,“巴塞罗那”

热刺

['巴塞罗那']

1 个答案:

答案 0 :(得分:-1)

您可以先shuffle列表,然后对其进行遍历:

import random

teams = ["Tottenham", "Ajax", "Barcelona", "Liverpool"]
random.shuffle(teams)

while teams:
    print(teams.pop())
    print(teams)

输出

Liverpool
['Ajax', 'Tottenham', 'Barcelona']
Barcelona
['Ajax', 'Tottenham']
Tottenham
['Ajax']
Ajax
[]

注意

先随机播放可降低循环的复杂度。它可能并非在所有情况下都适用,但这是一个选择。