【发布时间】:2014-02-23 01:31:38
【问题描述】:
假设我有一份足球运动员名单。目前,我只有四名球员。 [梅西、伊涅斯塔、哈维、内马尔]。稍后将添加更多玩家。我想记录这些足球运动员在比赛过程中相互传球的次数。为了跟踪通行证,我相信我需要一个类似的数据结构
Messi = {Iniesta: 4, Xavi: 5 , Neymar: 8}
Iniesta = {Messi: 4, Xavi: 10 , Neymar: 5}
Xavi = {Messi: 5, Iniesta: 10 , Neymar: 6}
Neymar = {Messi: 8, Iniesta: 5 , Xavi: 6}
我可以使用字典吗?如果不是,哪种数据结构更适合?如果是,我该如何使用字典来解决这个问题?我如何解决不时包含新玩家的问题,并为他们创建字典。 例如,如果我得到列表中的第一个元素,第一次迭代中的 List(i) 是 Messi,我如何使用存储在其中的值来创建一个名为 Messi 的字典。这就是我如何得到下面的行。
Messi = [Iniesta: 4, Xavi: 5 , Neymar: 8]
有人建议我尝试这样的事情
my_dynamic_vars = dict()
string = 'someString'
my_dynamic_vars.update({string: dict()})
Python 和编程新手在这里。在我前进的过程中学习经验。提前感谢您的帮助。
【问题讨论】:
-
您可以使用集合模块中的 defaultdict。这是处理此任务的最简单方法。 Here 是文档和示例的链接。
-
这是一个旁注——但如果你想制作一本字典,你想使用
{}而不是[](制作一个列表)。所以Messi = [Iniesta: 4, Xavi: 5 , Neymar: 8]将是Messi = {Iniesta: 4, Xavi: 5 , Neymar: 8},因为Neymar等是对象。 -
已修复。谢谢! @追逐
标签: python list data-structures dictionary