2011-01-29 19 views
6

Dla programu testowego tworzę prosty model NFL. Chciałbym przypisać drużynie rekord (zwycięstwa i porażki) jako wartość w słowniku? Czy to jest możliwe?Czy wartość w słowniku w Pythonie może mieć dwie wartości?

Na przykład:

afcNorth = ["Baltimore Ravens", "Pittsburgh Steelers", "Cleveland Browns", "Cincinatti Bengals"] 

Jeśli Kruki miał 13 zwycięstw i 3 traci, można rachunku słownika dla obu tych wartości? Jeśli tak to jak?

+2

Kod pan pisał to lista ciągów, a nie słownika. –

Odpowiedz

16

pewien, po prostu sprawiają, że wartość lista lub krotka:

afc = {'Baltimore Ravens': (10,3), 'Pb Steelers': (3,4)} 

Jeśli jest bardziej skomplikowana, możesz utworzyć bardziej skomplikowaną strukturę niż krotka - na przykład, jeśli lubisz słowniki, możesz umieścić słownik w swoim słowniku, aby można było używać słownika w słowniku.

afc = {'Baltimore Ravens': {'wins':10,'losses': 3}, 'Pb Steelers': {'wins': 3,'losses': 4}} 

Ale w końcu może chcesz przenieść się do klas ...

3

Wartości w słowniku mogą być krotki A może lepiej w tym przypadku, wymienia:

d = {"Baltimore Ravens": [13, 3]} 
d["Baltimore Ravens"][0] += 1 
print d 
# {"Baltimore Ravens": [14, 3]} 
1

Cóż, można użyć krotki (lub listę):

records = {} 
records["Baltimore Ravens"] = (13, 3) 

Or możesz mieć ochotę i zrobić klasę Record z Record.wins i record.losses, ale to chyba przesada.

(Jako inna odpowiedź wskazuje, na podstawie listy oznacza, że ​​można zrobić arytmetyczne na wartościach, które mogą być użyteczne.)

+0

Możesz wykonywać operacje arytmetyczne na dowolnych wartościach. Posiadanie listy lub krotki pozwala łatwo ** powtórzyć ** wartości. (I, być może, zrób matematykę z rzeczami takimi jak 'sum()', które wykonują iterację dla ciebie.) –

Powiązane problemy