带字符串索引的Python数组

Pet*_*y B 63 python arrays dictionary list

是否可以在python中使用字符串作为数组中的索引?

例如:

myArray = []
myArray["john"] = "johns value"
myArray["jeff"] = "jeffs value"
print myArray["john"]
Run Code Online (Sandbox Code Playgroud)

mik*_*iku 136

你想要的是一个关联数组.在python中,这些被称为字典.

词典有时在其他语言中被称为"关联记忆"或"关联阵列".与由一系列数字索引的序列不同,字典由键索引,键可以是任何不可变类型 ; 字符串和数字总是键.

myDict = {}
myDict["john"] = "johns value"
myDict["jeff"] = "jeffs value"
Run Code Online (Sandbox Code Playgroud)

创建上述字典的替代方法:

myDict = {"john": "johns value", "jeff": "jeffs value"}
Run Code Online (Sandbox Code Playgroud)

访问值:

print(myDict["jeff"]) # => "jeffs value"
Run Code Online (Sandbox Code Playgroud)

获取密钥(在Python v2中):

print(myDict.keys()) # => ["john", "jeff"]
Run Code Online (Sandbox Code Playgroud)

如果你想了解python词典内部,我推荐这个~25分钟的视频演示:https://www.youtube.com/watch?v = C4Kc8xzcA68.它被称为"强大词典".

  • 很好的例子.对于Python中的字典总是很好的了解,正如[MYYN](http://stackoverflow.com/users/89391/the-myyn)所说,密钥必须是不可变类型.如果您需要使用"多个"键对值进行分类,则必须在Python中使用Tuple类型. (4认同)

gae*_*fan 5

更好的是,尝试OrderedDict(假设您想要类似列表的东西)。比常规字典更接近列表,因为键有顺序,就像列表元素有顺序一样。对于常规字典,键具有任意顺序。

请注意,这在 Python 3 和 2.7 中可用。如果您想使用早期版本的 Python,您可以找到可安装的模块来执行此操作。