下面是代码片段。我正在尝试返回所有可能的比赛列表,这些比赛的组合正确,但是我正在寻找一种方法来返回所有可能的比赛,就像双循环赛一样,每支球队都会进行主客场比赛。因此,意大利对英格兰和英格兰对意大利是两场不同的比赛,但对于组合来说,它被认为是相同的。有什么解决方法吗?我还想为每场比赛分配一个唯一的号码
# Generate all matchups (home and away)
all_matchups = [
(team1, team2,match_number(team1,team2,teams)) for team1, team2 in combinations(teams, 2)
] # Duplicate each matchup to represent home and away games
print(all_matchups)```
您可以将
itertools.product
与 repeat
参数一起使用来获取输入与其自身的笛卡尔积
>>> from itertools import product
>>> teams = ['England', 'Italy', 'Germany']
>>> [(team1, team2) for team1, team2 in product(teams, repeat=2) if team1 != team2]
[
('England', 'Italy'),
('England', 'Germany'),
('Italy', 'England'),
('Italy', 'Germany'),
('Germany', 'England'),
('Germany', 'Italy')
]