python 字典初始化方法 全!!!

python 中字典还是比较常用的,可惜自己一直记不住,好记性不如烂笔头这话说的一点没错

方法一:

(这个是比较常见的)

d1 = {'x': 1, 'y': 2}
print(d1['x'])

>>> 1

当然也有这种特别好理解,但是写起来不那么.......友好的

d1' = {}
d1'[k1] = v1
d1'[k2] = v2
.......

方法二:

d2 = dict(x = 1, y = 2)
print(d2['x'])

>>> 1

方法三:

d3 = dict(zip('abc', [1,2,3])
print(d3['b'])

>>> 2

方法四:(这种我没太用过,在书上偶然看到就先记下,后续有发现再补充)

d4 = dict.fromkeys(range(2), 3)
print(d4[1])

>>> 3

d4' = dict.fromkeys(('x', 'y'),)
print(d4'['x'])

>>> None

方法五:

list = [('a', 1), ('b', 2), ('c', 3)]
d5 = dict(list)
print(d5['a'])

>>> 1

        字典是一种关联容器,每个键都映射到一个单独的值上。如果想让键映射到多个值,需要将多个值保存到另一个容器如列表或集合中。例如:

m = {
   'a' : [1, 2, 3],
   'b' : [4, 5]
}

n = {
   'a' : {1, 2, 3},
   'b' : {4, 5}
}

        至于要使用列表还是集合完全取决于使用的意图。如果希望保留元素插入的顺序,就用列表。如果希望消除重复元素(且不在意它们的顺序),就用集合

为了能方便地创建这样的字典,可以利用collections模块中的defaultdict类。defaultdict的一个特点就是它会自动初始化第一个值,这样只需添加元素即可,例如:

from collections import defaultdict
#list
d = defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(4)
.......
#set
d = defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['b'].add(4)
.......

        原则上,构建一个一键多值字典是很容易的。但是如果试着自己对第一个值做初始化操作,这就会变得很杂乱。例如,可能会写下这样的代码:

d = {}
for key, value in pairs:
    if key not in d:
        d[key] = []
    d[key].append(value)

如果使用defaultdict的话,代码会简单一些

d = defaultdict(list)
for key, value in pairs:
    d[key].append(value)

先写这么多,后续再补充~

  • 19
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值