在python中迭代字典值的最快方法是什么?

时间:2017-08-16 20:51:43

标签: json python-3.x loops dictionary

所以,我想知道迭代字典值并将其值与另一个变量进行比较的最快方法是什么。我有一个特定的字典结构,非常简单:

"data": [
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    }
]

我已遍历some_dict['data'],然后使用此代码比较它的['id']值:

for item in some_dict:
    if item['id'] == some_value:
        #do stuff

但是对于一个大字典字典,它需要花费很多时间,所以我很好奇其他方法来做我想要的。我听说过set有利于巨大的列表迭代,但无论如何都要从我的dict结构中使用它?

1 个答案:

答案 0 :(得分:2)

在我看来,你的方式还可以。但如果你坚持不同的方式,那么你可以这样做:

from itertools import chain
flat_list = list(chain.from_iterable([d.values() for d in some_dict['data']]))
for item in flat_list:
    if item == some_value:
        # do stuff

或者,如果您只想检查在场状态:

if some_value in flat_list:
    # do stuff

关于set,如果id的值中存在重复项,则会消除它们。所以,除非你这样好,否则我不会使用它。