Python中设置和dict的案例分析

  介绍

小编给大家分享一下Python中设置和dict的案例分析,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

<强> dict常用操作

引言

明确():清空字典

复制():返回一个浅拷贝

fromkeys():将可迭代对象中的每一个元素作为关键和同一个价值拼成字典

得到():根据关键返回值,若无对应的键值对,则返回没有,也可以指定默认返回值,和索引访问相比,不会产生异常。

项目():返回一个dict_items类型,支持迭代,键值对以元组形式组织

setdefault():获取关键对应的价值值,先调用(),若不存在该键值对,则添加

update():合并字典,或键值对元组构成的可迭代对象

<强>使用案例

#,1只清楚()   d =,{名称:“MetaTian",,年龄:“22”}   d.clear ()      #,2只复制()   时间=new_dict  d.copy ()   new_dict [“age"],=18      打印(new_dict)   打印(d)   #,resutl:   #,{& # 39;年龄# 39;:,18日,& # 39;名字# 39;:,& # 39;MetaTian& # 39;}   #,{& # 39;年龄# 39;:,& # 39;22 & # 39;,,& # 39;名字# 39;:,& # 39;MetaTian& # 39;}      #,3只fromkeys ()   时间=d  dict.fromkeys(范围(3),“MetaTian")   打印(d)   #,结果:   #,{0:& # 39;MetaTian& # 39;,, 1:, & # 39; MetaTian& # 39;,, 2:, & # 39; MetaTian& # 39;}      #,4只;get ()   打印(d.get (2))   打印(d.get (3))   print (d.get (3,“null"))      #,结果:   #,MetaTian   #,没有   #,零      #,5只产品()   print(类型(d.items ()))   print (d.items ())   #,结果:   #,& lt; class  & # 39; dict_items& # 39;比;   #,dict_items (((0,, & # 39; MetaTian& # 39;),, (1, & # 39; MetaTian& # 39;),, (2), & # 39; MetaTian& # 39;)))      #,6只setdefault ()   d =, {}   时间=value  d.setdefault (“name",,“MetaTian"),, #,如果无,name 这个,键,则添加   打印(价值,,d)   #,结果:   #,MetaTian {& # 39;名字# 39;:,& # 39;MetaTian& # 39;}      #,7只更新()   d1 =, {1:“a"}   d2 =, {2:“b"}      d1.update (d2)   d2.update ([(3,“c"),, (4,“d")))      打印(d1)   打印(d2)   #,结果:   #,{1:& # 39;一个# 39;,,2:,& # 39;b # 39;}   #,{2:& # 39;b # 39;,, 3:, & # 39; c # 39;,, 4:, & # 39; d # 39;}

<强>设置和frozenset

引言

设置是可变集合,frozenset是不可变集合

集合中的元素无序,不重复

使用案例

“““   通过,集(Iterable),来构建出可变集合对象   通过,frozenset (Iterable),构建不可变集合对象   “““   时间=s 集(“12345666”)   fs =, frozenset([& # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;,, & # 39;一个# 39;]),,,,#,不可变类型,可以作为,dict 的关键   打印(s)   打印(fs)      #,结果:   #,{& # 39;6 & # 39;,,& # 39;1 & # 39;,,& # 39;4 & # 39;,,& # 39;5 & # 39;,,& # 39;3 & # 39;,,& # 39;2 & # 39;}   #,frozenset ({& # 39; b # 39;,, & # 39;一个# 39;,,& # 39;c # 39;})      “““   向,set 中添加元素   add ()   update ()   “““   s1, s2 =,设置(“123”),设置(“234”)   s1.update (s2)   s2.add (& # 39; 5 & # 39;)      打印(s1)   打印(s2)      #,结果:   #,{& # 39;1 & # 39;,,& # 39;2 & # 39;,,& # 39;3 & # 39;,,& # 39;4 & # 39;}   #,{& # 39;2 & # 39;,,& # 39;3 & # 39;,,& # 39;5 & # 39;,,& # 39;4 & # 39;}      “““   集合的运算   安康;差   ,交   |,并   “““   s1, s2 =,设置(“123”),设置(“234”)   打印(s1 安康;s2)   打印(s1 ,, s2)   打印(s1  |, s2)      #,结果:   #,{& # 39;1 & # 39;}   #,{& # 39;2 & # 39;,,& # 39;3 & # 39;}   #,{& # 39;3 & # 39;,,& # 39;1 & # 39;,,& # 39;2 & # 39;,,& # 39;4 & # 39;}

<强> dict类型和设置的实现原理

引言

dict类型和设置的查找性能远远大于列表

dict和设置底层通过散列表存储,因此也要求dict的关键是可哈希的,不可变对象都是可哈希的

哈希的原理。

以字典为例。

存储之前要通过哈希函数来计算关键的值,得到存储索引,如果得到的结果已经被使用,要处理冲突,重新计算后再进行存储

自定义的类通过实现__hash__(),就可以存储在dict和设置中。

看完了这篇文章,相信你对Python中设置和dict的案例分析有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

Python中设置和dict的案例分析