python-以最快和可扩展的方式从另一个字典创建字典
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-以最快和可扩展的方式从另一个字典创建字典,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2016字,纯文字阅读大概需要3分钟。
内容图文
![python-以最快和可扩展的方式从另一个字典创建字典](/upload/InfoBanner/zyjiaocheng/665/58c5fe7a1dd94257b8b764fc1589c22b.jpg)
我有几种创建新字典的方案:
>仅使用键“总计”不为零的列表中的那些词典
>从字典中删除键,例如’total’和’rank’
>使用“名称”键值作为键,使用“游戏”键值作为列表
新字典中的值
>对新字典中的值列表进行排序
我的代码是:
# input dictionary
data =[
{'name': 'foo', 'rank': 3, 'game': 'football', 'total': 1},
{'name': 'bar', 'rank': 5, 'game': 'hockey', 'total': 0},
{'name': 'foo', 'rank': 7, 'game': 'tennis', 'total': 0},
{'name': 'foo', 'rank': 2, 'game': 'cricket', 'total': 2},
{'name': 'bar', 'rank': 1, 'game': 'cricket', 'total': 8},
]
result_list = []
merged_data = {}
result_data = {}
# Get the list of dict if key 'total' value is not zero
dict_without_total = [
den for den in data if den.get('total')
]
for my_dict in dict_without_total:
# deleting key 'brand' and 'total' from the
del my_dict['rank']
del my_dict['total']
result_data.update({
my_dict.get('name'): (my_dict.get('game'))
})
result_list.append(result_data)
# store all values of same keys in list and sort the values list
for result in result_list:
for keys, values in result.items():
if keys not in merged_data:
merged_data[keys] = []
merged_data[keys].append(values)
merged_data[keys].sort()
print merged_data
我的代码输出:
{
'bar': ['cricket', 'cricket', 'cricket'],
'foo': ['cricket', 'cricket', 'cricket']
}
预期结果:
{
'foo': ['cricket', 'football'],
'bar': ['cricket']
}
有没有更快的方法来获得结果,还是可以使用一些python内置函数来处理这种情况?
解决方法:
您可以真正简化此操作,因为无需修改现有字典.通常,将原始数据结构保留下来,然后构建一个新的结构,会更清洁.
data = [
{'name': 'foo', 'rank': 3, 'game': 'football', 'total': 1},
{'name': 'bar', 'rank': 5, 'game': 'hockey', 'total': 0},
{'name': 'foo', 'rank': 7, 'game': 'tennis', 'total': 0},
{'name': 'foo', 'rank': 2, 'game': 'cricket', 'total': 2},
{'name': 'bar', 'rank': 1, 'game': 'cricket', 'total': 8},
]
result = {}
for e in data:
if e["total"]:
name = e["name"]
if name not in result:
result[name] = []
result[name].append(e["game"])
print result
结果是{‘foo’:[‘football’,’cricket’],’bar’:[‘cricket’]},这就是您要查找的内容.
内容总结
以上是互联网集市为您收集整理的python-以最快和可扩展的方式从另一个字典创建字典全部内容,希望文章能够帮你解决python-以最快和可扩展的方式从另一个字典创建字典所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。