我在词典列表中使用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
第3个清单:
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中的值将这些数据细分为字典列表。
您可以从上表中了解它。我猜输出将是[[{}]]格式。
答案 0 :(得分:1)
使用词典词典:
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)
对的行列表。