[PY3]——字典中的键如何映射多个值?字典如何排序?

Posted Jelly_lyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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]——字典中的键如何映射多个值?字典如何排序?的主要内容,如果未能解决你的问题,请参考以下文章

Python之字典中的键映射多个值

Python中字典的键映射多个值(列表或者集合)

字典的高级特性

如何对字典中的所有值求和?

Pandas:根据另一列的键在现有列上映射字典值以替换 NaN

如何根据字典中的键/值增加 Python Pandas DataFrame