我有一本字典,里面有很多东西。我想偷看一个任意的项目:
print("Amongst our dictionary's items are such diverse elements as: %s" % arb(dictionary))
我不在乎哪个项目。它不需要是随机的。
我可以想出很多方法来实现这一点,但它们似乎都很浪费。我想知道是否有任何 Python 中的首选习语,或者(甚至更好)如果我缺少一个。
def arb(dictionary):
# Creates an entire list in memory. Could take a while.
return list(dictionary.values())[0]
def arb(dictionary):
# Creates an entire iterator. An improvement.
for item in dictionary.values():
return item
def arb(dictionary):
# No iterator, but writes to the dictionary! Twice!
key, value = dictionary.popitem()
dictionary[key] = value
return value
我处于性能不够关键的位置,这很重要(还),所以我可能会被指责为过早优化,但我正在努力改进我的 Python 编码风格,所以如果有一个容易理解的变体,采用它会很好。
最佳答案
在我看来,类似于您的第二个解决方案,但更明显:
return next(iter(dictionary.values()))
这在 python 2 和 python 3 中都有效,但在 python 2 中这样做更有效:
return next(dictionary.itervalues())
关于从字典中访问任意元素的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593651/