Может ли значение в словаре Python иметь два значения? - PullRequest
6 голосов
/ 30 января 2011

Для тестовой программы я делаю простую модель НФЛ. Я хотел бы назначить запись (выигрыши и проигрыши) команде в качестве значения в словаре? Это возможно?

Например:

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

Если у Воронов было 13 побед и 3 поражения, может ли словарь учитывать оба этих значения? Если да, то как?

Ответы [ 3 ]

19 голосов
/ 30 января 2011

конечно, просто сделайте значение списком или кортежем:

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

Если это усложняется, вы можете захотеть создать более сложную структуру, чем кортеж - например, если вам нравятся словари, вы можете поместить словарь в свой словарь, чтобы вы могли использовать словарь во время словаря.

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

Но в конце концов вы можете перейти на занятия ...

3 голосов
/ 30 января 2011

Значения в словаре могут быть кортежами или, может быть, лучше в этом случае списками:

d = {"Baltimore Ravens": [13, 3]}
d["Baltimore Ravens"][0] += 1
print d
# {"Baltimore Ravens": [14, 3]}
1 голос
/ 30 января 2011

Ну, вы можете использовать кортеж (или список):

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

Или вы можете сделать класс Record с Record.wins и record.losses, но это, вероятно, излишне.

(Как указывает другой ответ, использование списка означает, что вы можете выполнять арифметику со значениями, что может быть полезно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...