python - 按其中一个键的值拆分字典

标签 python python-2.7

我有一个包含相同长度(但不同类型)数据的字典,例如:

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 将它一分为二,保留各自的 infonumber。也就是说,有两个字典 data1data2

注意:这只是一个示例,字典中有多个键,我想避免使用键名,而是遍历所有键名。

什么是 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/

相关文章:

python - 与其他模块一起对 main.py 进行单元测试

python - 定义 cartopy 上墨卡托投影的纵向范围

python - 从 Python 脚本运行 Maven 的方法?

python - 我们可以在 codeskulptor 中创建和导入模块吗?

python - 如何验证通过 AJAX 提交的 web2py 表单?

python - 获取错误 : redirect_uri_mismatch The redirect URI in the request: http://localhost:8080/oauth2callback did not match a registered redirect URI

python - 使用键参数列出排序错误

python - AppEngineLauncher 不再显示状态图标?

python - 如何在用python编写的解释器中实现多重赋值?

python - Jupyter Notebook 中的 tqdm 重复打印新的进度条