例如,一个提供字典和值的函数将返回首先包含所述值的键。或者也许是一个可以返回包含某个值的所有键的函数,等等。是否有专门的程序包来处理这样的事情?
答案 0 :(得分:1)
您想做的两件事可以通过使用列表理解来实现。但是在字典中,没有顺序。因此,您不能仅获得第一个元素。
d = {"One": 1, "Two": 2, "Three": 3, "Four": 3}
ks = [v for k, v in d.items() if v > 1]
我认为许多built-in types, such as int, str, list, set, dict拥有许多非常方便的方法,但是可能不知道。因此,我首先建议您仔细阅读它们。
以我的经验,还有两个模块itertools和collections值得学习和使用。这是来自文档的信息。
此模块实现了许多受启发的迭代器构建块 由APL,Haskell和SML构建。每个都已改铸成 适用于Python的表单。
该模块标准化了一套快速的,内存高效的工具的核心 本身或结合起来有用的东西。他们在一起形成 一个“迭代器代数”,可以构造专门的 纯Python简洁高效地创建工具。
此模块实现专门的容器数据类型,以提供 Python通用内置容器的替代品dict, 列出,设置和元组。
答案 1 :(得分:0)
这不需要任何外部程序包即可获取密钥,请使用以下定义获取给定值的所有密钥
def getKeys(dictionary, value):
keys = []
for key in dictionary.keys():
if dictionary[key] is value:
keys.append(key)
return keys
a = {"One": 1, "Two": 2, "Three": 3, "Four": 3}
print getKeys(a, 3)
(或者)简单地
def getKeys(dictionary, value):
return [key for key in dictionary.keys() if dictionary[key] is value]
这将返回所有具有相同值的键