【发布时间】:2015-04-02 02:31:03
【问题描述】:
我的当前字典列表如下所示:
x =[{u'id': 813, u'overlap': 1.0},
{u'id': 811, u'overlap': 0.002175817439439302},
{u'id': 812, u'overlap': 0.012271742728263339},
{u'id': 814, u'overlap': 0.9182077233294997},
{u'id': 815, u'overlap': 0.8866809411969082},
{u'id': 117, u'overlap': 0.9173796235219325},
{u'id': 816, u'overlap': 0.9460961805523018},
{u'id': 116, u'overlap': 0.2038311249297872},
{u'id': 817, u'overlap': 0.7302323133830623},
{u'id': 818, u'overlap': 0.81532953091762},
{u'id': 819, u'overlap': 0.2817392052504116},
{u'id': 820, u'overlap': 0.7905202140586483},
{u'id': 821, u'overlap': 0.8497466449368322},
{u'id': 822, u'overlap': 0.8503886863531487},
{u'id': 823, u'overlap': 1.0}]
我想找到例如 id==820 的重叠,即 0.7905202140586483
如何用几行 Python 代码高效而优雅地完成它? (我将循环数百万个这样的数组)。
【问题讨论】:
-
列表没有这种方式——根据定义,列表是按顺序搜索的,除非您单独维护某种索引。为什么不把它改成字典呢?
-
我是从 Mongodb 中读到的。我可以轻松地将其转换为以 id 为键、重叠为值的字典吗?
-
当然可以。我把它留给你一个练习,提示是:dict理解。
-
如果你给出产生序列的代码的相关部分(我对所涉及的类感兴趣),我们可能会建议一种方法来返回已经被
id索引的序列。 MongoDB 似乎能够做到这一点。 -
是否有可能多个列表条目具有重叠的键?
标签: python arrays list dictionary