Python_快速生成字典_fromkeys()

本文详细介绍了Python中字典的fromkeys()方法的使用,包括其基本语法、参数说明及实例应用。通过具体代码演示了如何利用fromkeys()快速生成字典,并探讨了在不同情况下的行为表现,如value值为序列时的效果以及多次赋值时的覆盖特性。

一、fromkeys(seq,value)

  1、说明:

  指定key值和value值,快速生成字典

  seq -- 字典键值列表。
  value -- 可选参数, 设置键序列(seq)的值

>>> sd = {}
>>> d = ["q","w","e"]
>>> sd.fromkeys(d,1)
{'q': 1, 'w': 1, 'e': 1}

 2、细节

  (1)注意:value值为序列的效果

>>> sd = {}
>>> d = ["q","w","e"]
>>> v = [1,2,3]
>>> sd.fromkeys(d,v)#value值为序列的效果
{'q': [1, 2, 3], 'w': [1, 2, 3], 'e': [1, 2, 3]}

 (2)多次赋值时,不会追加,会覆盖

>>> d = {"s":6}
>>> s = ["q","w","e"]
>>> d = d.fromkeys(s,1)#多次赋值操作
>>> print(d)#会将原来的值覆盖
{'q': 1, 'w': 1, 'e': 1}

 

  3、实例: 

    一个函数传入一个List列表,生成一个字典:所有元素作为字典的key

   正确写入:

>>> def func(L):
...     d_result = {}
...     for i in l:
...         d_result = d_result.fromkeys(L,1)#要有变量赋值,否则结果会为空
...     return d_result
...
>>> s = ["q","w","e"]
>>> func(s)
{'q': 1, 'w': 1, 'e': 1}

 *注意:错误写入

>>> def func(l):
...     d_result = {}
...     for i in l:
...         d_result.fromkeys(i,"1")#没有进行赋值
...     return d_result
...
>>> s = ["q","w","e"]
>>> func(s)#打印的结果为空
{}

 

转载于:https://www.cnblogs.com/rychh/articles/9737622.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值