2016-11-18 83 views
0

我是一名蟒蛇新手,我正在嘗試製作一款應用程序,根據他們擁有關鍵名稱,價值分數的得分,將球員分配給3支球隊。如何添加對字典到另一個字典?

我因子評分這樣做的方法是,以獲得最大的關鍵,從我的主詞典值對,並將其移動到另一個字典是這樣的...

team_1 = {} 
team_2 = {} 
team_3 = {} 

players = {'alex':1, 'ion':2, 'octav':3, 'cristi':4, 'miu':5, 'spiri':6, 'fane':7, 'vali':8, 'grasu':9, 'jhonny':10, 'lil':10} 


for key, value in players.items(): 
    if not team_1: 
     x = max(players.items(), key=lambda p: p[1]) 
     team_1.update(x) 

顯然,這沒有工作,它給我:

Traceback (most recent call last): 
    File "test.py", line 21, in <module> 
    echipa1.update(x) 
ValueError: dictionary update sequence element #0 has length 6; 2 is required 

我不necesserly想讓它這樣,如果你們有任何IDEEA如何使它更加不同,我是所有年份。

+0

您將球員分配給球隊的條件有點不清楚,但您可以這樣做,'team_1 [key] = value'將一個鍵值對添加到'team_1'字典中。 – Lafexlos

+0

我知道如何添加normaly,但我想複製具有最大價值的關鍵值對並將其添加到team_1中,例如 –

+1

您必須提供更多的細節。您只描述瞭如何處理得分最高的項目。其他玩家會發生什麼?將球員分爲N組球隊的算法是什麼? – scotty3785

回答

0

我得到它通過更換

 x = max(players.items(), key=lambda p: p[1]) 
     team_1.update(x) 

 name, score = max(players.items(), key=lambda p: p[1]) 
     team_1[name] = score 

交替工作,你可以用team_1.update((x,))

更換team_1.update(x)我認爲前者的解決方案是清晰的。後者可行的,因爲一個可能的輸入到update()是對的序列。 x是一對,因此它需要在一個序列是正確的形狀。

+0

我不知道這是什麼OP是尋找。 – scotty3785

+0

你真是一個救世主:D scotty這是我想要的,但我不知道該怎麼搜索以及如何使用它,因爲我是初學者,對不起,我不太清楚。 –

+0

您也可以做team_1.update({x}) – Richard