以下是一个按键列分组并获取具有一个有效值和零值的记录的解决方法的代码示例:
data = [
{'key': 'A', 'value': 1},
{'key': 'A', 'value': 0},
{'key': 'B', 'value': 2},
{'key': 'B', 'value': 0},
{'key': 'C', 'value': 3},
{'key': 'C', 'value': 0},
]
grouped_data = {}
for record in data:
key = record['key']
value = record['value']
if key in grouped_data:
grouped_data[key].append(value)
else:
grouped_data[key] = [value]
result = []
for key, values in grouped_data.items():
if 0 in values and len(set(values)) > 1:
result.append({'key': key, 'values': values})
print(result)
上述代码首先创建一个空字典grouped_data
来存储按键分组的记录。然后遍历原始数据列表data
,对于每个记录,将键值对分别提取出来。然后检查该键是否已经存在于grouped_data
中,如果存在,则将该值追加到对应的值列表中;如果不存在,则创建一个新的键值对,并将该值作为列表的第一个元素。这样,grouped_data
中的键值对就表示了按键分组后的记录。
接下来,创建一个空列表result
来存储最终结果。然后遍历grouped_data
中的键值对,对于每个键值对,首先检查该值列表中是否包含零值,并且列表中的元素个数大于1(即既有有效值又有零值)。如果满足这两个条件,就将该键值对添加到result
列表中。
最后,打印出结果列表result
。
以上代码的输出结果为:
[{'key': 'A', 'values': [1, 0]}, {'key': 'B', 'values': [2, 0]}, {'key': 'C', 'values': [3, 0]}]
该结果表示按键列分组后,具有一个有效值和零值的记录为{'key': 'A', 'values': [1, 0]}
、{'key': 'B', 'values': [2, 0]}
和{'key': 'C', 'values': [3, 0]}
。
下一篇:按键没有响应