首页 > 代码库 > [PY3]——字典中的键如何映射多个值?字典如何排序?
[PY3]——字典中的键如何映射多个值?字典如何排序?
Defaultdict 默认字典
- collections 模块中的 defaultdict(默认字典),可以用来构造“一个键映射多个值”这样的字典
- 如果你想保持元素的插入顺序就应该使用list, 如果想去掉重复元素就使用set
import collections import defaultdict
d=defaultdict(list) / e=defaultdict(set)
d = { ‘a‘ : [1, 2, 3], ‘b‘ : [4, 5]}e = { ‘a‘ : {1, 2, 3}, ‘b‘ : {4, 5}}
- 要注意,defaultdict会自动为将要访问的键(就算目前字典中并不存在这样的键)创建映射实体
from collections import defaultdict
d=defaultdict(list)d[1].append(‘a‘)d[1].append(‘b‘)d[2].append(‘a‘)print(d[0]) [] //即使我们没有为d[0]赋值,但依旧为这个位置占了个坑print(d) defaultdict(<class ‘list‘>, {0: [], 1: [‘a‘, ‘b‘], 2: [‘a‘]})q=defaultdict(set)q[0].add(‘a0‘)q[0].add(‘b0‘)q[0].add(‘c0‘)q[1].add(‘d1‘)print(q) defaultdict(<class ‘set‘>, {0: {‘b0‘, ‘c0‘, ‘a0‘}, 1: {‘d1‘}})
setdefault
p={}p.setdefault(‘1‘,[]).append(‘a‘)p.setdefault(‘1‘,[]).append(‘b‘)p.setdefault(‘2‘,[]).append(‘c‘)print(p[0]) KeyError: 0 #和上面相反,这个并不会占坑print(p) {‘2‘: [‘c‘], ‘1‘: [‘a‘, ‘b‘]}
创建一个多值映射字典
d = {}for key, value in pairs: if key not in d: d[key] = [] d[key].append(value)d = defaultdict(list)for key, value in pairs: d[key].append(value)
[PY3]——字典中的键如何映射多个值?字典如何排序?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。