请教 python 元组嵌套字典 转换成 字典嵌套队列 如何实现
时间:2011-03-30
来源:互联网
({'f_id': 32,'f_instance_id': 450L, 'f_rule_level': 3,},
{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 3,},
{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 2,},
{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 1, },
{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 3, },
{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 2,},
{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 1, })
上面是个元组嵌套字典
我想根据f_id相同的作为一组 转换成 下面的样式
{
32:[{'f_id': 32,'f_instance_id': 450L, 'f_rule_level': 3, }]
33:[{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 3}, { 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 2,}, { 'f_id': 33L, 'f_instance_id': 450L, 'f_rule_level': 1,}
34:[{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 3}, { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 2,}, { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 1,}]
}
我是敲PHP 的 PHP 里面的话可以直接用个 二维数组来实现
foreach( $array as $key=>$value){
$rs[$value['f_id']][] = $value
}
这样就可以。
可是在PYTHON 下面实在不会像各位请教一下。
{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 3,},
{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 2,},
{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 1, },
{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 3, },
{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 2,},
{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 1, })
上面是个元组嵌套字典
我想根据f_id相同的作为一组 转换成 下面的样式
{
32:[{'f_id': 32,'f_instance_id': 450L, 'f_rule_level': 3, }]
33:[{ 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 3}, { 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 2,}, { 'f_id': 33L, 'f_instance_id': 450L, 'f_rule_level': 1,}
34:[{ 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 3}, { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 2,}, { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 1,}]
}
我是敲PHP 的 PHP 里面的话可以直接用个 二维数组来实现
foreach( $array as $key=>$value){
$rs[$value['f_id']][] = $value
}
这样就可以。
可是在PYTHON 下面实在不会像各位请教一下。
作者: jianglu07 发布时间: 2011-03-30
rs = {}
for a in array:
key = a['f_id']
if rs.has_key(key):
rs[key].append(a)
else:
rs[key]=[a]
for a in array:
key = a['f_id']
if rs.has_key(key):
rs[key].append(a)
else:
rs[key]=[a]
作者: lqefn 发布时间: 2011-03-31
- from pprint import pprint
-
- tuple_dict = ({'f_id': 32,'f_instance_id': 450L, 'f_rule_level': 3,},
-
- { 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 3,},
- { 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 2,},
- { 'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 1, },
-
- { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 3, },
- { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 2,},
- { 'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 1, })
-
- format_dict = {}
-
- for item in tuple_dict:
- format_dict.setdefault(item['f_id'], []).append(item)
-
- pprint(format_dict)
{32: [{'f_id': 32, 'f_instance_id': 450L, 'f_rule_level': 3}],
33: [{'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 3},
{'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 2},
{'f_id': 33, 'f_instance_id': 450L, 'f_rule_level': 1}],
34: [{'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 3},
{'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 2},
{'f_id': 34, 'f_instance_id': 450L, 'f_rule_level': 1}]}
作者: llbgurs 发布时间: 2011-03-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28