2016-11-18 9 views
0

Ich bin ein Python Rookie und ich versuche eine App zu erstellen, die Spieler zu 3 Teams auf der Grundlage der Punktzahl, die sie haben Key-Name, Wert-Score.Wie füge ich ein Wörterbuch in ein anderes Wörterbuch ein?

Die Art, wie ich es zu tun tought war die maximalen Schlüssel, Wert-Paar aus meinem Hauptwörterbuch zu bekommen und es in ein anderes Wörterbuch wie so bewegt ...

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) 

Offensichtlich ist dies nicht funktioniert hat, es mir gab:

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 

ich will nicht necesserly, um es auf diese Weise machen, wenn jemand von euch jede ideea hat, wie es auch anders zu machen, ich bin alle Jahre.

+0

Ihre Bedingung bei der Zuweisung von Spielern an Teams ist unklar, aber Sie können 'team_1 [key] = value' eingeben, um ein Schlüssel-, Wert-Paar zu' team_1' dict hinzuzufügen. – Lafexlos

+0

Ich weiß, wie man normalerweise hinzufügt, aber ich möchte das Schlüsselwertpaar mit dem größten Wert kopieren und es in team_1 zum Beispiel hinzufügen –

+1

Sie müssen ein bisschen mehr Details geben. Du hast nur beschrieben, was mit dem Gegenstand mit der größten Punktzahl zu tun ist. Was passiert mit den anderen Spielern? Wie ist Ihr Algorithmus zum Sortieren der Spieler in N Teams? – scotty3785

Antwort

0

Ich habe es von

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

mit

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

Ersatz zu arbeiten, Sie team_1.update(x) mit team_1.update((x,))

Ich denke, die frühere Lösung klarer ersetzen kann. Letzteres funktioniert, weil ein möglicher Eingang zu update() eine Folge von Paaren ist. x ist ein Paar, also muss es in einer Sequenz sein, um die richtige Form zu haben.

+0

Ich bin mir nicht sicher, das ist, was das OP sucht. – scotty3785

+0

wow du bist wahrlich ein lebensretter: D scotty das ist das was ich wollte aber ich wusste nicht was ich suche und wie ich es benutze da ich ein anfänger bin, tut mir leid das ich nicht zu explizit war. –

+0

Du kannst auch team_1.update ({x}) machen – Richard