1.6 字典中的键映射多个值

上传人:野鹰 文档编号:1352692 上传时间:2017-06-08 格式:PDF 页数:2 大小:85.01KB
返回 下载 相关 举报
1.6 字典中的键映射多个值_第1页
第1页 / 共2页
1.6 字典中的键映射多个值_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《1.6 字典中的键映射多个值》由会员分享,可在线阅读,更多相关《1.6 字典中的键映射多个值(2页珍藏版)》请在金锄头文库上搜索。

1、1.6 字典中的键映射多个值问题怎样实现个键对应多个值的字典(也叫 multidict )?解决案个字典就是个键对应个单值的映射。如果你想要个键映射多个值,那么你就需要将这多个值放到另外的容器中,如列表或者集合。如,你可以像下这样构造这样的字典:d = a : 1, 2, 3,b : 4, 5e = a : 1, 2, 3,b : 4, 5选择使列表还是集合取决于你的实际需求。如果你想保持元素的插顺序就应该使列表,如果想去掉重复元素就使集合(并且不关元素的顺序问题)。你可以很便的使collections模块中的defaultdict来构造这样的字典。defaultdict的个特征是它会动初始化

2、每个key刚开始对应的值,所以你只需要关注添加元素操作了。如:from collections import defaultdictd = defaultdict(list)da.append(1)da.append(2)db.append(4)d = defaultdict(set)da.add(1)da.add(2)db.add(4)需要注意的是,defaultdict会动为将要访问的键(就算前字典中并不存在这样的键)创建映射实体。如果你并不需要这样的特性,你可以在个普通的字典上使setdefault()法来代替。如:d = # A regular dictionaryd.setdefau

3、lt(a, ).append(1)d.setdefault(a, ).append(2)d.setdefault(b, ).append(4)但是很多程序员觉得setdefault()起来有点别扭。因为每次调都得创建个新的初始值的实例(例程序中的空列表)。讨论般来讲,创建个多值映射字典是很简单的。但是,如果你选择实现的话,那么对于值的初始化可能会有点烦,你可能会像下这样来实现:d = for key, value in pairs:if key not in d:dkey = dkey.append(value)如果使defaultdict的话代码就更加简洁了:d = defaultdict(list)for key, value in pairs:dkey.append(value)这节所讨论的问题跟数据处理中的记录归类问题有的关联。可以参考1.15节的例。W3Cschool()最的技术知识分享与学习平台此篇内容来于站户上传并发布。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号