import random
### number of overs
overs = 20
bowlers = ['Wasim','Hasan','Fazal','Rumman','Abrar','Shadab']
lineup = []
for i in range(overs):
lineup.append(random.choice(bowlers))
if (i != 0) & (lineup[i-1]==lineup[i]):
lineup.pop()
bowlers_notprev = bowlers.copy()
bowlers_notprev.remove(lineup[i-1])
lineup.append(random.choice(bowlers_notprev))
for i in range(overs):
z = random.choice(bowlers)
lineup.append(z)
for x in range(overs-1):
if lineup[x] == lineup[x+1]:
rmv = lineup.pop(x)
bowlers_notprev = bowlers.copy()
bowlers_notprev.remove(rmv)
lineup.insert(x, random.choice(bowlers_notprev))
当从bolwers中采样lineup时,可以使用列表解析,如下所示。
lineup = [random.choice(bowlers) for a in range(overs)]
1条答案
按热度按时间qxsslcnc1#
这可以是您的问题的答案代码。
在这种情况下,不应该使用双for循环,如果你的代码的第一个
for
循环是为了向lineup
列表中添加一个人,第二个for
循环是为了检查它是否与前一个相同,你也可以编写下面的代码。当从
bolwers
中采样lineup
时,可以使用列表解析,如下所示。