一、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)#打印的結果為空 {}