今日内容:
一,元组:tuple() 跟python其它数据类型一样,tuple()也是一个可将字符串转换成元组的内置函数
特点:
1,被元组转换的对象,一定是可迭代的对象,数字可不行滴,一般字符串或列表,转换后都会被拆成单个元素
2,元组是有序排列,可通过索引值进行索引,当然也可以计算它的长度
例:tu = (a,b,c,d,e) #定义一个元组
print(len(tu)) #会显示: 3 当前元组的元素数量为3
s1 = tu[2:] #对元组进行切片,索取元组的元素并给变量s1赋值
print(tu.index(b,1,3)) #在元组中索引指定的元素x,指定从索引值1开始,
# 显示为 1 到索引值3结束的范围查找值为b的元素位置,默认可不指定范围
print(len(tu)) # 显示为 5 表示此元组中共有五个元素
3,元组是不可变类型的python数据类型。里面的元素是不可更改滴,但如果元素为列表,或字典时,可变列表或
列表的值。
例:t2 = (1,["a","b","c"],{"name":"Frank"})
t2[1][2] = "d" #重新定义元素中索引值为1的列表中的索引位置为2的值
t2[2]["name"] = "aibapspl#重新定义元素中索引值为2的字典中的索引位置为"name"的值
print(t2) #显示为:(1, ['a', 'b', 'd'], {'name': 'aibapspl'})
4,如果定义元组时,值只有一个,在此元素后一定要加一个逗号,代表后面还有元素,可被for循环迭代。
例: tu1 = tuple(1,) #当元素只有一个时,定义元组时,此元素后面一定要加逗号!
5,应用场景: 根据需要,元组和列表可以互相转换。
例 li = [1,2,3] #定义一个列表
tu = tuple(li) #使用tuple()内置函数转换列表
print(type(tu)) #查看转换后的类型
<class 'tuple'> #显示为元组类型
l2 = list(tu) #使用函数list()转换无组
print(type(l2)) #查看转换后的类型
<class 'list'> #显示为列表类型
二,字典 dict{} 此数据类型为python语言中唯一的mapping类型,即一个key对应一个value
特点:
1, 字典内的元素都是以键值对形式存在,即key:value的形式一一对应,key与value之间使用冒号分隔,每个 元素之间使用逗号隔开
key:只能是不可变类型,如数字类型,元组,字符串和布尔型
value: 所有类型都可以为value
例: dic1 = {123:None,None:123,(1,2):[a,b],True:None,{"s":2}:1.92,2.16:2.16}
2,字典中的key具有唯一性,如果字典中已存在一个值,如果再赋值一个相同的key,字典中key的值会被覆盖
例:dic1 = {123: None,} #定义一个字典
dic1[123] = "abc" #替换字典中key为123的值为"abc"
print(dic1) #打印字典
{123: 'abc'}
3, 字典是无序存储的,所以无法使用index()索引,只能靠取key来更改key的值,
例: dic1 = {123: None} #定义一个字典
print(dic1[123]) #查询字典中key为123的值
abc #显示key的值为abc
print(type(dic1[123])) #查询这个key的值的类型
<class 'str'> #显示为字符串类型
内置属性的使用方法:
.pop() 根据key来指定要删除的元素
例: dic1 = {123: None,"name":"Frank"} #定义一个字典
dic1.pop("name") #删除一个key为"name"的元素
print(dic1) #打字删除后的字典
{123: None} #结果显示,key为"name"的元素已删除
.copy() 浅拷贝 相当系统另申请一个内存空间以来存放与原字典一样的值
例: dic1 = {123: None} #定义一个字典
dic2 = dic1.copy() #字典dice2复制dict1的值
print(dic2) #打字dice2的值
{123: None} #显示dice2的值
print(id(dic1),id(dic2)) #打印出二个字典的内存id
4567702768 4644934784 #显示出二个字典的内存id不相同
三,集合 set()
特点:
1,单列的数据集合,内部可以存储任意类型的数据,但每个数据都具有唯一性
例: li = [1,2,3,4,2] #创建一个空集合
s1 = set(li) #将列表转换成集合
print(s1) #打印出集合的值
{1, 2, 3, 4}
print(type(s1)) #打印类型
<class 'set'> #显示的类型为集合
2,无序存储 无法使用key或索引值来取值
使用场景:集合间的运算
例:s1 = {1,2,3,"x"} #创建四个集合
s2 = {1,2,3,"y"}
s3 = {4,5,6}
s4 = {1,2,3,4,5,6}
print(type(s1),type(s2),type(s3),type(s4)) #打印类型
<class 'set'> <class 'set'> <class 'set'> <class 'set'> #显示都为集合
交集:&
print(s1 & s2) #打印出二个集合之间的交集,即相同的元素
{1, 2, 3} #显示出二个集合间的相同元素
并集:|
print(s1 | s2) #打出出二个集合的并集,即把二个集合的所有元素集合,并去除重复元素
{1, 2, 3, 'x', 'y'} #显示出二个集合的所有元素,并去除了重复的部分
差集:-
print(s4 - s3) #打印出s4与s3的差集 即用s4里的所有元素减去s3的元素,留下的就是s3 中没有的元素
{1, 2, 3} #显示出s3中没有的元素
也可使用函数: 集合一.symmetric_difference(集合二)来完成来完成
print(s4.symmetric_difference(s3)) #打印出s4与s3的差集 即用s4里的所有元素减去 {1, 2, 3} s3的元素,留下的就是s3中没有的元素
print(s4.symmetric_difference(s3))
对称交集: ^
print(s1 ^ s2) #打印出二个集合的对称交集 即显示出二个集合中相互没有的元素
{'x', 'y'} #显示出这二个集合相互没有的元素
也可使用函数: 集合一.symmetric_difference(集合二)来完成
print(s1.symmetric_difference(s2))
{'x', 'y'} ##显示出这二个集合相互欠缺的元素