我有一个字典,里面装满了项。我想窥视一个单独的任意项:
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编码风格,所以如果有一个易于理解的变体,采用它将是好的。
dictionary.itervalues().next()
是关键。这至少比你的第二个arb
函数更好。 - srgergnext(dictionary.itervalues())
;这是推荐的风格,并且具有一些好处(对于Python 3兼容性没有变化-其中next
方法变为__next__
-以及默认值的可能性)。 - Chris Morganiteritems
而不是itervalues
。/吹毛求疵/ - moooeeeep