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

内置构造字典的方法对比

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)
posted @   MrSphere  阅读(30)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示