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

Mar*_*ere 2 json dictionary loops python-3.x

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

"data": [
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    },
    {
     "id": "xxxxxxxxxxxxx"
    }
]
Run Code Online (Sandbox Code Playgroud)

我已经循环遍历some_dict['data'],然后['id']使用以下代码比较它的值:

for item in some_dict:
    if item['id'] == some_value:
        #do stuff
Run Code Online (Sandbox Code Playgroud)

但是对于大尺寸的字典,需要花费很多时间,所以我很好奇其他方法来完成我想要的事情。我听说 set 适合大型列表迭代,但是有没有办法从我的 dict 结构中使用它?

ber*_*erg 5

据我看来,你的方法没问题。但如果你坚持采用不同的方式,那么你可以这样做:

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
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想检查是否存在:

if some_value in flat_list:
    # do stuff
Run Code Online (Sandbox Code Playgroud)

关于set,如果 的值中有重复id,则会将其消除。所以除非你同意,否则我不会使用它。