处理独立的值来迭代字典列表

时间:2016-02-29 14:05:33

标签: python dictionary

Faultysats=[{'G11': '16 01 13 09 43 50.0000000'},
            {'G11': '16 01 13 09 43 51.0000000'},
            {'G03': '16 01 13 09 43 52.0000000'}]
SATS=['G01', 'G03', 'G04', 'G08', 'G11', 'G19', 'G28', 'G32']
EPOCH='16 01 13 09 43 51.0000000'

我有一个列表 - faultysats,一个包含不同卫星和纪元时间的字典列表; SATS,包含sats的列表;和EPOCH,时间价值。 如果来自faultysats的卫星(例如'G11')出现在SATS中并且来自故障的相应时期(例如'16 01 13 09 43 50.0000000')出现在EPOCH中,我想知道卫星在哪个索引中。 SATS列表。

希望这是有道理的,我正在努力,因为我不知道如何确定字典列表中的不同值。是否有某个运营商处理从sats列表中提取数据?

由于

3 个答案:

答案 0 :(得分:0)

获取可以使用的索引列表:

Faultysats=[{'G11': '16 01 13 09 43 50.0000000'},
            {'G11': '16 01 13 09 43 51.0000000'},
            {'G03': '16 01 13 09 43 52.0000000'}]
SATS=['G01', 'G03', 'G04', 'G08', 'G11', 'G19', 'G28', 'G32']
EPOCH='16 01 13 09 43 51.0000000'

indexes = []

for i in range(0, len(Faultysats)):
    for key in Faultysats[i]:
        if (key in SATS) and (Faultysats[i][key] == EPOCH):
            indexes.append(i)

print(indexes)

答案 1 :(得分:0)

这个怎么样:

首先获取相应value等于EPOCH的词典列表,然后从key获取SATS的索引:

>>> Faultysats=[{'G11': '16 01 13 09 43 50.0000000'},
            {'G11': '16 01 13 09 43 51.0000000'},
            {'G03': '16 01 13 09 43 52.0000000'}]
>>> SATS=['G01', 'G03', 'G04', 'G08', 'G11', 'G19', 'G28', 'G32']
>>> EPOCH='16 01 13 09 43 51.0000000'
>>> f = [k for d in Faultysats for k,v in d.items() if EPOCH == v]
>>> indx = [SATS.index(x) for x in f]
>>> 
>>> indx
[4]

答案 2 :(得分:0)

首先,让我们获取FaultysatsSATS所有卫星的列表,这些卫星位于EPOCH并且具有sats = [sat for pair in Faultysats for sat, epoch in pair.iteritems() if sat in SATS and epoch == EPOCH] >>> sats ['G11'] 时间戳。

>>> {s: SATS.index(s) for s in sats}
{'G11': 4}

现在你可以使用字典理解来提供SATS中每颗卫星的索引位置(假设没有重复)。

{{1}}