以下是一个不使用连接进行两个表的分组的示例代码:
# 创建示例数据
table1 = [
{"id": 1, "name": "John", "group_id": 1},
{"id": 2, "name": "Emma", "group_id": 1},
{"id": 3, "name": "Tom", "group_id": 2},
{"id": 4, "name": "Amy", "group_id": 2}
]
table2 = [
{"group_id": 1, "group_name": "Group A"},
{"group_id": 2, "group_name": "Group B"}
]
# 使用字典构建分组
groups = {}
for row in table2:
groups[row["group_id"]] = {"group_name": row["group_name"], "members": []}
# 将表1的行添加到相应的分组中
for row in table1:
group_id = row["group_id"]
if group_id in groups:
groups[group_id]["members"].append({"id": row["id"], "name": row["name"]})
# 打印分组结果
for group_id, group_data in groups.items():
print("Group:", group_data["group_name"])
for member in group_data["members"]:
print("Member:", member)
print()
运行以上代码将输出以下结果:
Group: Group A
Member: {'id': 1, 'name': 'John'}
Member: {'id': 2, 'name': 'Emma'}
Group: Group B
Member: {'id': 3, 'name': 'Tom'}
Member: {'id': 4, 'name': 'Amy'}
这个示例代码中,我们首先创建了一个空字典 groups
,用于存储分组信息。然后,我们遍历 table2
表中的行,将每个分组的信息以字典形式存储到 groups
中。接着,我们遍历 table1
表中的行,根据 group_id
找到相应的分组,并将成员信息添加到 members
列表中。最后,我们打印出分组结果。