【发布时间】:2017-02-24 03:24:13
【问题描述】:
我正在编写一些代码,要求我获取键的下限(为简单起见,忽略集合中最小键下方的键)。
在 C++ 中,使用 std::map(作为最具可比性的数据类型)我会简单地使用 lower_bound() 来返回迭代器。
我的 Pythonfoo 不是那么好,但我猜测(如果 Python 还没有这样做的方法),这将是对 lambda 函数的一个很好的使用......
检索给定索引的下限键的 Pythonic 方法是什么?
如果问题太抽象,这就是我真正想要做的:
我有一个按日期索引的 Python 字典。我希望能够使用日期来查找字典,并返回与指定键的下限关联的值。
片段如下:
mymap = { datetime.date(2007, 1, 5): 'foo',
datetime.date(2007, 1, 10): 'foofoo',
datetime.date(2007, 2, 2): 'foobar',
datetime.date(2007, 2, 7): 'foobarbar' }
mydate = datetime.date(2007, 1, 7)
# fetch lbound key for mydate from mymap
def mymap_lbound_key(orig):
pass # return the lbound for the key
我真的不想遍历密钥,寻找第一个密钥
【问题讨论】: