在Python中将字典列表划分为子字典

2024-10-01 11:32:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用字典列表中的MySQLdb从数据库中获取n个记录。我想根据数据将列表细分为不同的子列表。e、 g

col1    |   col2    |   col3    |   col4

data11  |   data12  |   data13  |   data14
data11  |   data12  |   data23  |   data24
data11  |   data13  |   data33  |   data34
data11  |   data13  |   data43  |   data44
data21  |   data12  |   data53  |   data54
data21  |   data12  |   data63  |   data64
data21  |   data13  |   data73  |   data74
data21  |   data13  |   data83  |   data84

我要将此数据转换为:

col1    |   col2    |   col3    |   col4

第一个列表:

data11  |   data12  |   data13  |   data14
data11  |   data12  |   data23  |   data24

第二个列表:

data11  |   data13  |   data33  |   data34
data11  |   data13  |   data43  |   data44

第三个列表:

data21  |   data12  |   data53  |   data54
data21  |   data12  |   data63  |   data64

第四个列表:

data21  |   data13  |   data73  |   data74
data21  |   data13  |   data83  |   data84

Python有什么超棒的方法可以将多个列分组并将列表划分为多个列表。你知道吗

编辑:

目前,我有:

[{ "col1":"data11","col2":"data12","col3":"data13","col4":"data14"
},
...
]

我想根据col1和col2中的值将这些数据细分为字典列表。你知道吗

你可以从上表中理解。我猜输出将是[[{}]]格式。你知道吗


Tags: 数据列表字典col2col3col1细分col4
1条回答
网友
1楼 · 发布于 2024-10-01 11:32:21

使用词典:

super_awesome = {}
for row in rows:    # these are the rows from MySQLdb
    col1 = super_awesome.get(row['col1'], {})    # get col1 or an empty dict
    col2 = col1.get(row['col2'], [])             # get col2 or an empty list
    col2.append(row)                             # append row to (col1,col2)
    col1[row['col2']] = col2                     # put col2 into col1
    super_awesome[row['col1']] = col1            # put col1 into super_awesome

完成后,super_awesome为每个唯一的col1值都有一个条目,每个条目为每个唯一的(col1,col2)值都有一个条目。反过来,这些条目每个都有一个(col1,col2)对的行列表。你知道吗

相关问题 更多 >