Imbricated for dict(Python)

时间:2017-10-22 11:45:12

标签: python dictionary selection

来自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])

非常感谢,

最高

1 个答案:

答案 0 :(得分:0)

你不能说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)):