一、Set 集合类型
Set 集合类型 (交差并补) 特点 :无序 , 自动去重
- 集合用{}表示,元素间用逗号分隔
- 建立集合类型用{}或set()
- 建立空集合类型,必须使用set
- 定义一个普通的集合
1
2
3
4
5
6
7
8
9
10
11
|
setvar = { "shy" , "肉鸡" , "gala" , "小虎" , "狼牙山五壮士" } print (setvar , type (setvar) ) / / 打印出来随机排列,无序 可以获取其中的元素吗? 不行 print (setvar[ 0 ]) / / error 可以修改其中的元素吗? 不行 setvar[ 0 ] = "嘻嘻" / / error setvar = { "shy" , "肉鸡" , "gala" , "小虎" , "牙山" , "shy" } print (setvar) |
- 定义一个空集合
1
2
3
4
|
setvar = {} # 字典 //{} <class 'dict'> setvar = set () # 空集合 //srt() <class 'dict'> print (setvar , type (setvar)) |
dict
字典类型 键值对存储的数据,可获取,可修改 表面上有序,实际存储时无序
-
在
python3.5
之前 完全无序, 在python3.5之后 表面上有序,存储时无序 - 语法:{键1:值1 ,键2:值2 , 键3:值3 … }
- 映射是一种键(索引) 和值(数据)的对应
1
2
|
"streetAddr" : "中关村南大街55号" "city" : "北京市" |
- 定义一个空的字典
1
2
|
dictvar = {} print (dictvar , type (dictvar)) |
- 定义一个普通字典
1
2
|
dictvar = { "top" : "shy" , "middle" : "肉鸡" , "bottom" : "gala" , "support" : "小明" , "jungle" : "wei" } print (dictvar) |
- 获取字典中的数据
1
2
3
|
res = dictvar[ "support" ] res = dictvar[ "jungle" ] print (res) |
- 修改字典中的数据
1
2
|
dictvar[ "bottom" ] = "jacklove" print (dictvar) |
二、set 和 dict 的数据类型限制
- 字典的键 和 集合的值 有数据类型限制只能使用如下类型: (不可变的数据类型 可哈希的数据类型)
- Number(int float bool complex) , str , tuple
- 可变数据: set dict list
字典的键是唯一的,字典的值没有数据类型的限制;
字典:
1
2
|
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)) |
集合:
1
2
|
setvar = { 1 , 3.4 , "sd" ,( 1 , 2 , 3 ), 4 - 10j , False } / / 如果是 True ,则会被去重 print (setvar) |
(了解) 哈希算法:
- 为了更加均匀的把数据分配到内存中,于是采用哈希算法,以减少哈希碰撞.更快的存储数据
- 哈希算法要求数据类型只能是不可变的数据 (Number str tuple) ,也叫可哈希数据类型
- 哈希算法存储的数据都是无序的,所以字典和集合无序;
到此这篇关于Python中的 Set 与 dict的文章就介绍到这了,更多相关Python Set 与 dict内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_52330730/article/details/123414382