【发布时间】:2014-04-22 17:49:02
【问题描述】:
抱歉,我找不到更好的标题。我的问题是我有两个列表,我想从第一个列表中随机选择一个项目并将其与第二个列表中的一个项目匹配,但是这些项目的索引不能相同(li1[3] 不能与 li2[3] 匹配) 并且在选择一个项目后,它必须从列表中删除。我试过这段代码,但它没有完成工作。谢谢你的帮助。
from random import choice
teams1 = ["brazil", "croatia", "england", "italy", "mexico", "cameroon", "ivory coast", "japan"]
teams2 = ["spain", "germany", "belgium", "holland", "argentina", "portugal", "france", "usa"]
counter = 3
counter2 = 8
while counter != 0:
a = choice(range(1,counter2))
a1 = teams1[a]
b = choice(range(1,counter2))
b1 = teams2[b]
print(teams1[0], b1)
print(teams2[0], a1)
del teams1[a]
del teams2[b]
del teams1[0]
del teams2[0]
counter -= 1
counter2 -= 2
print(teams1[0], teams2[0])
【问题讨论】:
-
我不明白你所说的被选择项目的索引是什么意思不能相同。它们是从列表中删除所选项目之后的索引还是原始列表中的索引?
-
对不起,我一开始没有搞清楚。基本上问题是,例如,即使原始列表已修改,意大利也永远无法与荷兰配对,克罗地亚永远无法与德国配对。
-
我认为这不能完全随机完成,因为有时球队是按顺序挑选的,这样每个列表中剩下的最后一个就是需要避免的比赛。发生这种情况时,您必须从头开始重新绘制。那是你想做的吗?我不知何故感觉到,您构建匹配项的方式并不完全是您需要做的,但我不知道您要解决的真正问题。
-
队伍从八个不同的组中晋级。每组有两支队伍晋级。一个来自一号点,两个来自二号点。比方说,第一组推广 1.Brazil 和 2.Spain,第二组推广 1.Croatia 和 2.Germany 等。巴西无法与西班牙会面,因为他们已经在一个组中,无法与其他已从第一名升级的球队。这就是我想在这里弄清楚的。