八、组合数据类型
1.集合类型
-集合是多个元素的无序集合,和数学中的集合概念相同,与C++中的set相同
-集合中元素是无序且互逆的
-集合类型是由不可变数据类型组成的
-集合用 { } 表示,元素之间用逗号分隔
-建立集合类型需要使用 { } 或者 set ( ) , 建立空集合类型必须使用 set( )
A = {"dzzhyk" , 123 , (255,255)}
B = set("dzzhyk") = {'d' , 'z' , 'h' , 'y' , 'k'}
2.集合操作符
-集合之间的主要运算:并、差、交、补
-除了基本运算之外,Python还提供了 <= 、 >= 、 < 、> 等运算符,还有 |= 、-= 、&= 、^=
A = {'p' , 'y' , 123}
B = set("python123")
print(A - B)
print(A ^ B)
print(A | B)
print(A & B)
C = {'d' , 'z' , 'h' , 'y' , 'k' , 123}
D = set("dzzhyk")
print(C <= D)
print(C >= D)
A -= B
print(A)
A ^= B
print(A)
A |= B
print(A)
A &= B
print(A)
#输出:
{123}
{'n', 'h', '2', '3', 't', 'o', 123, '1'}
{'n', 'h', '2', '3', 't', 'p', 'o', 'y', 123, '1'}
{'y', 'p'}
False
True
{123}
{'n', 'h', '2', '3', 't', 'p', 'o', 'y', 123, '1'}
{'h', '2', '3', 'p', 'o', 'n', 't', 'y', 123, '1'}
{'n', 'h', '2', '3', 't', 'p', 'o', 'y', '1'}
3.集合操作符
A = {'d' , 'z' , 'h' , 'y' , 'k'}
A.add(x) #向集合中增加元素x
A.discard(x) #去除集合中的元素x,如果x不在集合中
A.remove(x) #去除集合中的元素x,如果x不在集合中,返回KeyError异常
A.clear() #清空集合中的元素
A.pop() #随机返回A中的一个元素,更新A,如果A为空返回KeyError异常
A.copy() #返回集合A的一个副本
len(A) #返回集合A的元素个数
x in A #判断x是否在集合A中
x not in A #判断x是否不再集合A中
set(x) #将非集合类型变量转化成集合类型
#Python中的报错检查机制:
try:
<内容>
except: #如果接收到错误返回信息就执行except中的操作
<内容>
4.集合类型的应用场景
-包含关系的比较
-数据去重
ls = ['p' , 'p' , 'p' , 'y' , 'y' , 123]
s = set(ls)
ls = list(s)
#可完成去重操作
5.序列类型定义
-序列是具有先后关系的一组元素,是基类类型(序列可以分支成为:字符串类型、元组类型、列表类型)
-元素之间可以类型不同,元素可以相同,存在顺序关系
序号:
6.序列处理函数及方法
6个序列的通用处理符:
5个序列的通用处理函数:
实例:反序输出字符串
ls = input()
print(ls[::-1])
7.元组类型及操作
-元组是序列的一种类型,元组一旦被创建就不能被修改
-使用 ( ) 或者 tuple( ) 来创建一个元组类型,元素间用 , 分隔
-函数中return多个值时是返回的元组类型
t = ("1" , "2" , "d")
print(t)
def func():
return 1,100
print(func())
#输出:
('1', '2', 'd')
(1, 100)
s = (t , "dzzhyk" , "python")
#使用s[0][1]就可以索引到t中的“2”
print(s[0][1])
8.列表类型及操作
-列表是一种序列类型,创建之后其中的元素可以随意修改
-列表使用方括号 [ ] 或者 list( ) 函数来创建,元素间用 , 分隔
-列表可以通过 赋值= 操作将列表的内容传递给另一个变量,但是没有真正创建新的列表,只是传递了列表的引用
列表的操作方法:
9.序列类型的应用场景
-表示一组有序数据,进而操作他们
for item in ls:
<语句>
-在某些场景下使用元组类型对数据进行保护
10.字典类型
-映射类型相当于C++中的map
定义方法:
d = {"Name":"dzzhyk" , "Age":"18" , "Address":"Beijing"}
#获取key对应的键值:
print(d["Name"])
#可以使用{}生成空字典类型
d1 = {}
11.字典类型的操作方法
12.字典类型的应用场景
-映射的表达,表达键值对数据,进而操作他们