在字典中进行选择 (Python)

Imbricated for selection in dict (Python)

来自 MATLAB,我是 Python 的新手,我仍在努力理解它的语法。 我成功地做了我想做的事,但我确信有一种正确的方法只用一行就可以做到...

serialsToFind = ['43788273-1', '45788259-2', '87788202']
dataSelection = []
from numpy import linspace
serials = linspace(0,len(data)-1,len(data), dtype='int')
for serialToFind in serialsToFind:
    for serial in serials:
        if data[serial]['SerialNumber'][:8] == serialToFind[:8]:
            dataSelection.append(data[serial])

非常感谢,

最大

你不说 data 是什么。但是,您可能想要的是

dataSelection = [item for serialToFind in serialsToFind for item in data
    if item['SerialNumber'][:8] == serialToFind[:8]]

注意:一般情况下,而不是做

serials = linspace(0,len(data)-1,len(data), dtype='int')
for serial in serials:

就这样

for serial in range(len(data)):