创建一个包含两个必需键的字典,其中一个键有两个可选键

时间:2016-11-03 12:16:09

标签: python python-3.x

我想以以下形式创建字典:

my_dict = dict.fromkeys((["name", "id"] , "value"), 10)

因此,为了访问元素10,我可以输入:

my_dict["name","value"] >> 10

mydict["id", "value"] >> 10

我认为这很有说服力,两个键是强制性的,但对于第一个键,您可以选择使用哪个键。这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以更好地更改设计,而不是攻击dict界面或撰写丑陋的内容(正如我在评论中所示),您可以更好地更改设计:

def get_any(dictionary, keys):
    try:
        return next(filter(bool, (dictionary.get(key) for key in keys)))
    except StopIteration:
        raise KeyError

group = ("name", "value"), ("id", "value")
dict = {("id", "value"): 10}
get_any(dict, group)

这样,您可以找到一组键的值,只要字典中至少有一个键。