详细解决方案
Python Set 与 dict
热度:53 发布时间:2023-11-23 08:42:43.0
Set 集合类型 (交差并补) 特点 :无序 , 自动去重
-
集合用{}表示,元素间用逗号分隔
-
建立集合类型用{}或set()
-
建立空集合类型,必须使用set
-
定义一个普通的集合
setvar = {"shy","肉鸡","gala","小虎","狼牙山五壮士"}
print(setvar , type(setvar) ) //打印出来随机排列,无序可以获取其中的元素吗? 不行print(setvar[0]) // error可以修改其中的元素吗? 不行setvar[0] = "嘻嘻" // errorsetvar = {"shy","肉鸡","gala","小虎","牙山","shy"}print(setvar)
-
定义一个空集合
setvar = {} # 字典 //{} <class 'dict'>setvar = set() # 空集合 //srt() <class 'dict'>
print(setvar , type(setvar))
dict 字典类型 键值对存储的数据,可获取,可修改 表面上有序,实际存储时无序
-
在python3.5之前 完全无序, 在python3.5之后 表面上有序,存储时无序
-
语法:{键1:值1 ,键2:值2 , 键3:值3 … }
-
映射是一种键(索引) 和值(数据)的对应
"streetAddr" : "中关村南大街55号"
"city" : "北京市"
-
定义一个空的字典
dictvar = {}
print(dictvar , type(dictvar))
-
定义一个普通字典
dictvar = {"top":"shy","middle":"肉鸡","bottom":"gala","support":"小明","jungle":"wei"}
print(dictvar)获取字典中的数据
res = dictvar["support"]
res = dictvar["jungle"]
print(res)修改字典中的数据
dictvar["bottom"] = "jacklove"
print(dictvar)
set 和 dict 的数据类型限制
-
字典的键 和 集合的值 有数据类型限制只能使用如下类型: (不可变的数据类型 可哈希的数据类型)
Number(int float bool complex) , str , tuple
-
可变数据: set dict list
-
字典的键是唯一的,字典的值没有数据类型的限制;
字典
dictvar = {1:1 , "222":2 , 3.14:4 , 5-90j:5 , False:999 , (1,2,3,4,5):[1,2,4] }
print(dictvar , type(dictvar))集合
setvar = {1,3.4,"sd",(1,2,3),4-10j,False } //如果是True,则会被去重
print(setvar) (了解) 哈希算法
为了更加均匀的把数据分配到内存中,于是采用哈希算法,以减少哈希碰撞.更快的存储数据
哈希算法要求数据类型只能是不可变的数据 (Number str tuple) ,也叫可哈希数据类型
哈希算法存储的数据都是无序的,所以字典和集合无序;