Python_快速生成字典_fromkeys()
一、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)#打印的结果为空 {}