我有一个包含相同长度(但不同类型)数据的字典,例如:
data = {
"id": [1,1,2,2,1,2,1,2],
"info": ["info1","info2","info3","info4","info5","info6","info7","info8"],
"number": [1,2,3,4,5,6,7,8]
}
现在我想通过 id
将它一分为二,保留各自的 info
和 number
。也就是说,有两个字典 data1
和 data2
。
注意:这只是一个示例,字典中有多个键,我想避免使用键名,而是遍历所有键名。
什么是 Pythonic 的实现方式?
最佳答案
带有理解列表:
data1 = [ data["info"][idx] for idx, x in enumerate(data["id"]) if x == 1 ]
#data1 = ['info1', 'info2', 'info5', 'info7']
如果你想恢复所有的 key :
data1 = [ { key : data[key][idx] for key in data.keys() } for idx, x in enu
merate(data["id"]) if x == 1 ]
>>> data1
[{'info': 'info1', 'id': 1, 'number': 1}, {'info': 'info2', 'id': 1, 'number': 2
}, {'info': 'info5', 'id': 1, 'number': 5}, {'info': 'info7', 'id': 1, 'number':
7}]
关于python - 按其中一个键的值拆分字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099557/