Python dict是一个非常有用的数据结构:
d = {'a': 1, 'b': 2}
d['a'] # get 1
Run Code Online (Sandbox Code Playgroud)
有时你也想按值索引.
d[1] # get 'a'
Run Code Online (Sandbox Code Playgroud)
哪种方法是实现此数据结构的最有效方法?有官方推荐的方法吗?
给出一对一的词典(=双射)生成àla
for key, value in someGenerator:
myDict[key] = value
Run Code Online (Sandbox Code Playgroud)
可以通过添加来简单地创建反向查找字典
invDict[value] = key
Run Code Online (Sandbox Code Playgroud)
到for循环.但这是一种Pythonic方式吗?我是否应该编写另外一个class Bijection(dict)管理这个反向字典并提供第二个查找功能的?或者这样的结构(或类似结构)是否已经存在?
字典通常很适合按键查找值,但按值查找键非常慢
for k,v in dictionary.items():
if v = myValue:
return k
Run Code Online (Sandbox Code Playgroud)
是否已有一个数据结构,使key-> value和ke
我正在努力寻找任何有关这实际上是什么的文档。我看懂的只是一本普通的字典。它由键和值对组成,因此如果您搜索某个键,则会返回相应的值,例如:
\n\nmyDict = {\xe2\x80\x98dog\xe2\x80\x99 : \xe2\x80\x99fido\xe2\x80\x99, \xe2\x80\x98cat\xe2\x80\x99 : \xe2\x80\x99tiddles\xe2\x80\x99, \xe2\x80\x98fish\xe2\x80\x99 : \xe2\x80\x99bubbles\xe2\x80\x99, \xe2\x80\x99rabbit\xe2\x80\x99 : \xe2\x80\x99thumper\xe2\x80\x99}\nRun Code Online (Sandbox Code Playgroud)\n\n然后你可以调用某些方法,例如:
\n\nmyDict[\xe2\x80\x98fish\xe2\x80\x99]\nRun Code Online (Sandbox Code Playgroud)\n\n回报
\n\n'bubbles'\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\nmyDict.has_key(\xe2\x80\x98tiddles\xe2\x80\x99)\nRun Code Online (Sandbox Code Playgroud)\n\n回报
\n\nTrue\nRun Code Online (Sandbox Code Playgroud)\n\n两层字典与此相比如何?
\n\n看来嵌套字典正是我正在寻找的。
\n\n还有一个问题,假设我有一个嵌套字典,它将单词链接到文本文件,其中第一个整数是文本文件的编号,第二个整数是出现的次数:
\n\nmyDict = {'through':{1:18,2:27,3:2,4:15,5:63}, 'one':{1:27,2:15,3:24,4:9,5:32}, 'clock':{1:2,2:5,3:9,4:6,5:15}\nRun Code Online (Sandbox Code Playgroud)\n\n如何使用文件编号来计算出存在的文本文件的总数?即有没有办法提取内部字典中键/值对的数量?
\n