• 周一. 4月 22nd, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

如果其他值具有特定属性,则迭代字典列表以获取特定值

[db:作者]

3月 7, 2023

我“解码”了一本词典,最终得出以下结论:

waycategory_values = data['features'][0]['properties']['extras']['waycategory']['summary']

其结果是:

[{'value': 3.0, 'distance': 230472.2, 'amount': 96.03}, {'value': 0.0, 'distance': 8713.7, 'amount': 3.63}, {'value': 1.0, 'distance': 811.1, 'amount': 0.34}]

现在我想得到距离,并将相应的值相加,如果值=1.0、2.0或3.0
我尝试通过以下操作来获得距离:

for distance in waycategory_values[0:]['distance']:
    if waycategory_values[0:]['value'] == 1.0 or 2.0 or 3.0:
        print(distance)

嗯,这显然是错误的。。但我似乎不知道怎么做——如果你能给我一个提示,那就太棒了

2条回答网友

1楼 ·

编辑于 2023-03-06 23:31:20

data = [{'value': 3.0, 'distance': 230472.2, 'amount': 96.03}, {'value': 0.0, 'distance': 8713.7, 'amount': 3.63}, {'value': 1.0, 'distance': 811.1, 'amount': 0.34}]

total_distance = 0
# just go through the list, no need for indexing
for dataset in data:
    if dataset['value'] in [1.0, 2.0, 3.0]: # <- list of values to check against
        total_distance += dataset['distance']

网友

2楼 ·

编辑于 2023-03-06 23:31:20

d=[{'value': 3.0, 'distance': 230472.2, 'amount': 96.03}, {'value': 0.0, 'distance': 8713.7, 'amount': 3.63}, {'value': 1.0, 'distance': 811.1, 'amount': 0.34}]
sum(v['distance'] for v in d if v['value'] == 1 or v['value'] == 2 or   v['value'] ==  3  )

231283.30000000002  

《如果其他值具有特定属性,则迭代字典列表以获取特定值》有148个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注