使用字符串索引的Python 2维数组(矩阵)

3
在Python(2.7)中,是否有一种本地的二维数据结构,可以通过基于字符串的索引进行访问?
我知道你可以使用带有字符串索引的字典,例如:
>>> dic = dict()
>>> dic['grumpy'] = 'cat'
>>> print(dict['grumpy'])
'cat'

但我希望有一种数据结构可以像这样访问:
>>> dic['grumpy']['frumpy'] = 'cat'
>>> print(dict['grumpy']['frumpy'])
'cat'

由于Array只允许基于整数的访问,因此似乎不可用... 有没有建议?谢谢!

1个回答

9

使用 defaultdict

from collections import defaultdict

nesteddict = defaultdict(dict)

nesteddict['abc']['spam'] = 'ham'

请注意,您所描述的是一个简单的嵌套结构;您也可以不使用defaultdict来构建它,但是这个类使得构建变得更加容易。


4
哦,得了吧。这太不公平了。答应我,当你达到10万的时候,你会给我们其他人至少30秒的优势! - DSM
太棒了!非常感谢您的快速回复!...在最少15分钟过去后,我会接受这个答案。 :) - ToOsIK
@DSM:明天我会离开很长一段时间……尽量找到空隙!:-P - Martijn Pieters
3
@DSM -- 你觉得我们能说服管理员相信Martijn已经黑进了SO,这样他就有机会在其他用户之前看到每一个问题 - 或者他是一种非常聪明和有用的非垃圾邮件机器人?(认真的 - 我觉得我甚至无法打字那么快) - mgilson
@mgilson:完全公开:我使用Kinesis Advantage分离式键盘,并使用Dvorak布局而不是QWERTY进行打字。 - Martijn Pieters
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接