以下是一个示例代码,演示如何按照状态对行进行分区:
# 示例数据
data = [
{'id': 1, 'name': 'John', 'status': 'active'},
{'id': 2, 'name': 'Jane', 'status': 'inactive'},
{'id': 3, 'name': 'Bob', 'status': 'active'},
{'id': 4, 'name': 'Alice', 'status': 'inactive'},
{'id': 5, 'name': 'Tom', 'status': 'active'}
]
# 创建一个空字典,用于存储分区结果
partitioned_data = {}
# 遍历数据,按照状态将行分区存储到字典中
for row in data:
status = row['status']
if status in partitioned_data:
partitioned_data[status].append(row)
else:
partitioned_data[status] = [row]
# 打印分区结果
for status, rows in partitioned_data.items():
print(f"Status: {status}")
for row in rows:
print(row)
print()
输出结果如下:
Status: active
{'id': 1, 'name': 'John', 'status': 'active'}
{'id': 3, 'name': 'Bob', 'status': 'active'}
{'id': 5, 'name': 'Tom', 'status': 'active'}
Status: inactive
{'id': 2, 'name': 'Jane', 'status': 'inactive'}
{'id': 4, 'name': 'Alice', 'status': 'inactive'}
这段代码首先创建了一个空字典partitioned_data
,用于存储分区结果。然后,遍历数据列表data
中的每一行,获取行的状态status
。如果状态已经存在于partitioned_data
字典中,将该行添加到对应状态的列表中;否则,创建一个新的状态列表并将行添加到其中。最后,遍历partitioned_data
字典,打印每个状态的行。