2017-10-28 136 views
-5

我有三個名單球隊= [T1,T2,T3,T4],還有勝數Nwins [10,12,10,5]和他們得分的目標數 GScored [33,34,22, 28。我想根據他們的勝利數量找到賽季冠軍,但是如果兩支球隊在賽季中獲得相同的勝利,那麼他們的進球數就會增加。類似地,獲勝最少的人將被降級,如果有兩人,那麼進球最少的人將被淘汰。您的幫助將不勝感激Python解決方案需要

+0

您有任何示例代碼可以提供嗎? SO不是代碼寫作服務,請在嘗試之前嘗試一些措施,以便在沒有任何明確的努力的情況下爲您做。 –

+0

目前還不清楚例如Nwins [10,12,10,5]的意思。你的意思是'Nwins'是一個列表,比如'Nwins = [10,12,10,5]'? –

+0

你必須編輯你的問題,否則它可能會被標記和刪除。請包含代碼片段和示例。 –

回答

0
Teams = ["T1","T2","T3","T4"] 
NoWins = [10,0,10,5] 
GScored = [33,34,22,28] 

highestWins = max(NoWins) 
if NoWins.count(highestWins) == 1: 
    winner = Teams[NoWins.index(highestWins)] 
else: 
    options = [g for i, g in enumerate(GScored) if NoWins[i] == highestWins] 
    winner = [t for i, t in enumerate(Teams) if NoWins[i] == highestWins][options.index(max(options))] 

lowestWins = min(NoWins) 
if NoWins.count(lowestWins) == 1: 
    relegated = Teams[NoWins.index(lowestWins)] 
else: 
    options = [g for i, g in enumerate(GScored) if NoWins[i] == lowestWins] 
    relegated = [t for i, t in enumerate(Teams) if NoWins[i] == lowestWins][options.index(min(options))] 

其中給出winner"T1"(我修改你的例子),並作爲relegated"T2"

如果NoWins = [0, 2, 2, 2]GScored = [4, 4, 3, 3]winner"T2"relegated"T1"

+0

@StefanPochmann好點,我沒有限制進球與頂級球隊的比較,我會現在添加到答案! –

+0

@StefanPochmann我終於搞定了,**非常麻煩,但它的工作。成功通過了所有的測試(管制繪圖分數以及優勝者繪圖分數),所以至少能夠奏效!儘管如此,你的答案是*很多,很多,整潔,簡單,所以+1我**:)** –

+0

@StefanPochman將看在秒,https://en.oxforddictionaries.com/definition/e.g。 –

2
winner = max(zip(Nwins, GScored, Teams))[2]