以下是一个示例代码,用于按Key B的最高值过滤具有重复Key A的项目:
# 示例数据
data = [
{'A': 'key1', 'B': 3},
{'A': 'key2', 'B': 5},
{'A': 'key3', 'B': 2},
{'A': 'key1', 'B': 4},
{'A': 'key2', 'B': 1},
{'A': 'key3', 'B': 6}
]
# 使用字典来存储每个Key A对应的最高值
max_values = {}
# 遍历数据列表
for item in data:
key_a = item['A']
key_b = item['B']
# 检查当前Key A是否已经存在于max_values字典中
if key_a in max_values:
# 如果存在,比较当前Key B的值与已保存的最高值
if key_b > max_values[key_a]:
# 如果当前Key B的值更高,更新最高值
max_values[key_a] = key_b
else:
# 如果当前Key A不存在于max_values字典中,将当前Key B的值保存为最高值
max_values[key_a] = key_b
# 根据最高值过滤数据并生成结果列表
filtered_data = [item for item in data if item['B'] == max_values[item['A']]]
# 打印结果
for item in filtered_data:
print(item)
运行以上代码将输出以下结果:
{'A': 'key1', 'B': 4}
{'A': 'key2', 'B': 5}
{'A': 'key3', 'B': 6}
以上代码首先创建一个空字典max_values
来存储每个Key A对应的最高值,然后遍历数据列表,逐个检查每个项目的Key A和Key B。如果当前Key A已经存在于max_values
字典中,则比较当前Key B的值与已保存的最高值,如果当前Key B的值更高,则更新最高值。如果当前Key A不存在于max_values
字典中,则将当前Key B的值保存为最高值。最后,根据最高值过滤数据,并生成一个结果列表。
上一篇:按可选择的列对加密数据进行排序。