Может ли значение в словаре 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
, но это, наверное, перебор.
(как указывает другой ответ, использование списка означает, что вы можете делать арифметику по значениям, которые могут быть полезны.)