0

我的数据结构如下所示:

  - testSet: a list of records in the test set, where each record
             is a dictionary containing values for each attribute

在每条记录中都有一个名为“ID”的元素。我现在想testSet通过 ID 值搜索里面的记录。所以当我得到一个 ID = 230 时,我想返回它的 ID 元素等于 230 的记录。

我怎样才能做到这一点?

4

3 回答 3

5
next((x for x in testSet if x["ID"] == 230), None)

这将返回具有该 ID 或未None找到的第一个项目。

于 2013-05-08T12:39:05.260 回答
2

像这样的东西?

for record in testSet:
    if record['ID'] == 230:
        return record
于 2013-05-08T12:39:11.767 回答
0

例如:

set = [{'ID': 50}, {'ID': 80}]

def find_set(id):
    return [elem for elem in set if elem['ID'] == id]

这将返回具有指定 ID 的所有项目。如果您只想要第一个,请添加 [0] (在检查它是否存在之后,例如:

def find_set(id):
    elems = [elem for elem in set if elem['ID'] == id]
    return elems[0] if elems else None
于 2013-05-08T12:41:00.213 回答