数据类型(三)
继续上次的内容
一.元组
①定义:t1=(),t1=tuple()
参数为可迭代对象(可以被for遍历的对象)
②介绍:有序存储,可以放多个数据,不可变类型(内部可以包括可变对象,可变对象依旧可变)。
③应用:可以将不允许操作的列表转换成成元组,将允许操作的元组转成列表。
④内置函数的使用方法
1.切片和len
t1[::1],取所有值,步长为一,和list的使用方法一样,len就是输出该元组的长度
2.count和index
t1.count(x)就是输出括号中元素x的数量,t1.index(x,2,5)输入一个元素得到该元素x对应的索引(因为在后面添加了start和end参数,所以这里的搜索范围在(2,5)之间(记得顾头不顾尾)),如果没有找到对应的元素就报错ValueError
二.字典
①定义:d1={‘a’:10,‘b’:20}
②介绍:无序存储,可以存放多个值,可变类型,因为是内部无序,只能通过key取值。
③应用:可以应用在很多场景,比如说名单中,只要输入对应的名字的就可以得到各种其他相关数据。
④增加
1.d1[key]=value,key存在就修改,不存在就是添加。
2.d1.updata(比如说是一个新字典),如果数据在d1中存在就覆盖,没有就添加。
3.d1.setdefault(key,default),如果存在key不操作,不存在给key赋予默认值。
⑤删除
1.del d1[key],通用删除
2.pop(key),根据key删除且返回value值,popitem(),随机删除一对key和value。
⑥得到数据
1.d1[key],直接根据key得到索引值,但是key不存在的时候直接报错。
2.d1.get(key,default),存在就返回对应的value值,不存在就返回默认值。
三.集合set
①定义:s1=set()
②介绍:数据具有唯一性
1.单列数据集合:str,list,tuple,set 双列:dict
2.无序存储,无key无index,无法取值
3.可变数据类型,内部可以存放任意类型数据,但是数据具有唯一性。
③应用:可以利用唯一性的特性,删除重复的数据
④交集:&
p_set = {'a', 'b', 'c', 'egon'}
l_set = {'x', 'y', 'z', 'egon'}
res = p_set & l_set(等同于res = p_set.intersection(l_set))
print(res) # {'egon'}
⑤ 并集
res = p_set | l_set(等同于res = p_set.union(l_set))
print(res) # {'z', 'c', 'y', 'x', 'b', 'a', 'egon'}
⑥差集
res = p_set - l_set
print(res) # {'a', 'b', 'c'}
res = l_set.difference(p_set)
print(res) # {'x', 'z', 'y'}
⑦ 对称差集(并集-交集)
res = p_set ^ l_set(等同于res = p_set.symmetric_difference(l_set))
print(res)
print(res) # {'y', 'a', 'b', 'x', 'z', 'c'}
⑧父子集
sup_set = {1, 2, 3, 4, 5}
sub_set = {1, 2, 3}
temp_set = {3, 2, 1}
flag_set = {7, 8, 9}
print(sup_set > sub_set) # True(等同于print(sub_set.issubset(sup_set))#判断sub_set是不是sup_set的子集
print(sup_set < sub_set) # False
print(temp_set == sub_set) # True
res = flag_set.isdisjoint(temp_set) # True # 两个set是否没有交集