我有一個使用傳奇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隊,這更加靈活 –