密钥未知时访问字典值的简便方法

Noa*_*ahL 1 python python-3.x

我有一堆大字典,它们的键是文本字符串。每个键值对具有相同的格式。我经常最终需要使用以下命令打印出一个值来验证结构(哪个 key:value对无关紧要):

my_dict[list(my_dict.keys())[ARBITRARY INDEX]]
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一种更雄辩的方法来做到这一点,有什么想法吗?

tim*_*geb 5

由于您使用的是Python 3(dict.values不返回完整列表),因此您可以通过内存有效的方式获取任意值,方法如下:

next(iter(d.values()))
Run Code Online (Sandbox Code Playgroud)

如果字典可能没有值,请将其包装在捕获的辅助函数中StopIteration,即:

def get_arb_value(dic):
    try:
        return next(iter(dic.values()))
    except StopIteration:
        # do whatever you like 
Run Code Online (Sandbox Code Playgroud)

相当于Python 2的next(iter(dic.values()))是next(dic.itervalues())。

  • 当然,我只是不知道OP在这种情况下会发生什么,您可以在`except`块中放置更多逻辑,而不仅仅是返回某些东西。 (2认同)