我有一个使用传奇API联盟的机器人。我只想从特定的比赛中检索一些统计数据。我有代码工作,但它是漫长而重复的,我想清理它。现在代码的主要功能正在运行,但在我将其放入bot中之前,我正在做一些测试。现在这是代码,我会解释它。在for循环中只打印一次
for i in range(0, 9):
num += 1
i = r_match['participants'][num]
e_name = i['summonerName']
e_id = i['summonerId']
team_id = i['teamId']
r_team = requests.get("https://lan.api.pvp.net/api/lol/lan/v2.5/league/by-summoner/{}/"
"entry?api_key=".format(e_id)).json()
x = r_team["{}".format(e_id)][0]
e_tier = x['tier']
e_div = x['entries'][0]['division']
if team_id == 100:
print("Blue team")
print(e_name, e_tier, e_div)
elif team_id == 200:
print("Red team")
print(e_name, e_tier, e_div)
所以这部分代码得到本场比赛的参加者的名字,它得到他们的ID并使用该ID找到一些其他属性。有两支队伍。在Json回复中,每个球队都有一个Id。 100和200,你可以在这里看到:
if team_id == 100:
print("Blue team")
print(e_name, e_tier, e_div)
elif team_id == 200:
print("Red team")
print(e_name, e_tier, e_div)
我想要做的就是打印“蓝队”,只是一次当条件满足“红队”。这样我就可以在机器人正在工作的聊天中打印干净的内容,但每次运行代码时,都会为每位参与者打印“蓝色团队”或“红色团队”,假设:
Blue Team
player 1
Blue Team
player 2...
依此类推,直到总共打出10名球员。我想要做的是:
Blue Team
player1
player2
player3
player4
player5
Red Team
player6
player7
player8
player9
player10
就是这样。感谢您的帮助:)
那么,上面的答案做了这份工作,我可能会问。这看起来有点长,所以这样做的优点是什么? – Aguxez
我只添加了大约4-6行。这种方式会将所有玩家添加到相应的团队ID中。如果你的队伍不仅仅是100和200队,这更加灵活 –