[英]How to remove key-value pairs from a dictionary where the key matches an item in a list?
[英]How to remove the list of dictionary elements with the same specific key-value
我希望我的 python 代码浏览列表元素并删除那些“时间”值相同的元素,同时保留第一个元素。 这是我的清单:
a = [
{'time': '18.00', 'id': 'bus_1', 'CO2': '8165.28'},
{'time': '20.00', 'id': 'bus_1' , 'CO2': '0.00'},
{'time': '21.00', 'id': 'f2.0' , 'CO2': '0.00'},
{'time': '18.00', 'id': 'bus_1', 'CO2': '8165.28', 'waiting': '0.00'},
{'time': '20.00', 'id': 'bus_1', 'CO2': '0.00', 'waiting': '0.00'}
]
预期输出:
b = [
{'time': '18.00', 'id': 'bus_1', 'CO2': '8165.28'},
{'time': '20.00', 'id': 'bus_1' , 'CO2': '0.00'},
{'time': '21.00', 'id': 'f2.0' , 'CO2': '0.00'},
]
一种选择是跟踪已经看到的时间:
a = [
{'time': '18.00', 'id': 'bus_1', 'CO2': '8165.28'},
{'time': '20.00', 'id': 'bus_1' , 'CO2': '0.00'},
{'time': '21.00', 'id': 'f2.0' , 'CO2': '0.00'},
{'time': '18.00', 'id': 'bus_1', 'CO2': '8165.28', 'waiting': '0.00'},
{'time': '20.00', 'id': 'bus_1', 'CO2': '0.00', 'waiting': '0.00'}
]
output, time_seen = [], set()
for dct in a:
time = dct['time']
if time not in time_seen:
output.append(dct)
time_seen.add(time)
print(output)
# [{'time': '18.00', 'id': 'bus_1', 'CO2': '8165.28'},
# {'time': '20.00', 'id': 'bus_1', 'CO2': '0.00'},
# {'time': '21.00', 'id': 'f2.0', 'CO2': '0.00'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.