联赛足球队

2024-09-25 06:33:42 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有3支队伍,我想在这三支队伍之间随机生成一个匹配。我用itertools排列来打印所有的匹配。问题是在游戏中产生一个分数。想象一下A队对B队(2-1)。如何在比赛中输入A队的2个进球和B队的1个进球?你知道吗

我已经打印了所有可能的匹配项。请注意,我使用了排列,因为A队对B队与B队对A队不同,因为一个队在主场比赛,而在另一场比赛中在另一个队的主场比赛。你知道吗

import itertools
import random

teams=['A','B','C']

def games():
  permutations=itertools.permutations(teams,2)
  for i in permutations:
    print(i)
    result=random.randint(0,5)

我的疑问是,在每次迭代中,我都必须在游戏中生成一个结果。你知道吗


Tags: inimport游戏fordefrandom分数games
2条回答

您正在生成一个整数,但需要两个整数来表示匹配分数:

import itertools
import random

teams = ['A','B','C']

def games():
    permutations = itertools.permutations(teams, 2)
    for match in permutations:
        home_team_score, away_team_score = random.randint(0, 5), random.randint(0, 5)
        print(match, home_team_score, away_team_score)

games()

样本输出

('A', 'B') 4 2
('A', 'C') 0 1
('B', 'A') 2 5
('B', 'C') 1 2
('C', 'A') 2 4
('C', 'B') 1 1

例如,您可以使用这种格式

for (home_team, away_team) in permutations:
    home_team_score, away_team_score = random.randint(0, 5), random.randint(0, 5)
    print('{} {} - {} {}'.format(home_team, home_team_score, away_team_score, away_team))

得到

A 4 - 4 B
A 0 - 4 C
B 3 - 4 A
B 1 - 0 C
C 2 - 1 A
C 3 - 5 B
import itertools
import random

teams=['A','B','C']

def make_games():
    games=[]
    permutations=itertools.permutations(teams,2)
    for team_tuple in permutations:
        game={}
        team_one, team_two = team_tuple[0],team_tuple[1]
        team_one_score, team_two_score=random.randint(0,5),random.randint(0,5)
        game[team_one]=team_one_score
        game[team_two]=team_two_score
        games.append(game)
    return games

print(make_games())

输出:

[
{'A': 1, 'B': 4}, 
{'A': 1, 'C': 0}, 
{'B': 5, 'A': 1}, 
{'B': 1, 'C': 1}, 
{'C': 1, 'A': 5}, 
{'C': 2, 'B': 3}
]

相关问题 更多 >