首页 > 编程语言 >python 内置构造字典的方法对比

python 内置构造字典的方法对比

时间:2023-02-22 21:11:39浏览次数:40  
标签:内置 fromkeys setdefault python list dict key 字典

内置构造字典的方法对比

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

相关文章