内置构造字典的方法对比
dict.fromkeys() 与 dict.setdefault()的异同
关于 fromkeys 方法的解释
dict.fromkeys 是将一个可迭代对象转化为字典,如列表,设置的默认参数为None,他的返回值是一个字典
#help on built-in function fromkeys:
#fromkeys(iterable, value=None, /) method of builtins.type instance
#Create a new dictionary with keys from iterable and values set to value.
关于 setdefault 方法的解释
dict.setdefault 是为一个不存在字典中的键值赋值一个默认值,如果有键有值,返回值为键的值,否则为设置的默认值
#Help on method_descriptor:
#setdefault(self, key, default=None, /)
#Insert key with a value of default if key is not in the dictionary.
#Return the value for key if key is in the dictionary, else default.
fromkeys 和setdefault 去重
解释器版本 3.10
## 利用fromkeys 和setdefault 进行去重的原理都是根据字典的键的映射是唯一的,
## 如果有重复的映射,则之前的键的值会被之后的值覆盖,
#### fromkeys返回的字典再进行取键的操作
a_list = [1,2,3]
a_dict = {}
b_dict = a_dict.fromkeys(a_list,1).keys()
print(b_dict)# dict_keys([1, 2, 3, 5])
#### setdefualt 方法去重需要对原可迭代对象用for循环进行遍历,
#### 然后再对产生的集合进行处理
b_list = [1,4,6,5,7,7,3,3,2,1,1,1,2]
dic = {}
for i in b_list:
dic.setdefault(i, b_list.count(i))
res_list = list(dic)
print(res_list)
标签:内置,fromkeys,setdefault,python,list,dict,key,字典
From: https://www.cnblogs.com/mrsphere/p/17145933.html