Может ли значение в словаре Python иметь два значения?

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

например:

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

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

3 ответов


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

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

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

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

но в конце концов вы можете захотеть перейти к классам...


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

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

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

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

или вы могли бы быть фантазии и сделать Record класс Record.wins и record.losses, но это, наверное, перебор.

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