我只是想确保在Python字典中没有办法只获取一个键(没有特定的质量或与某个值的关系),而是进行迭代。据我所知,您必须通过循环浏览整个字典来列出它们。像这样的事情:
list_keys=[k for k in dic.keys()]
问题是,如果字典不为空,我只需要一个任意键并且不关心其余的。我想除了创建一个长列表来随机获取 key 之外,迭代一个长字典是一个很大的开销,不是吗? 有人可以指出更好的技巧吗?
谢谢
最佳答案
这里的很多答案都会产生一个随机 key ,但最初的问题要求一个任意 key 。这两者之间有很大区别。随机性有一些数学/统计保证。
Python 字典按插入顺序排序。所以,是的,访问任意 key 需要迭代。但对于单个任意键,我们不需要迭代整个字典。内置函数 next
和 iter
在这里很有用:
key = next(iter(mapping))
内置的 iter
在映射中的键上创建一个迭代器。迭代顺序将是插入顺序。 next
内置函数返回迭代器中的第一项。对于任意键,不需要迭代整个映射。
如果您最终要从映射中删除键,则可以使用 dict.popitem
。这是文档字符串:
D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple;
but raise KeyError if D is empty.
关于python - 字典中任意选择一个键,无需迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942550/