Python组合数据类型(三)
一、集合
1、集合类型的定义
建立集合用{}或set()
ps:创建空集合,必须使用set(),因为{}是创建空字典的
集合元素之间无序,不存在相同元素
2、集合操作符
例如集合S、集合T
- S|T 并
- S-T 差
- S&T 交
- S^T 补
3、集合处理方法
操作函数或方法 | 描述 |
---|---|
add(x) | 如果集合中没有,将x添加到集合中 |
discard(x) | 移除集合中x元素,如果没有这个元素也不报错 |
remove(x) | 移除集合中x元素,若果没有这个元素报KeyError异常 |
clear() | 移除集合中所有元素 |
pop() | 随机返回集合中一个元素,如果集合为空产生KeyError异常 |
copy() | 返回集合的一个副本 |
len(集合) | 返回集合的元素个数 |
x in 集合 | 判断x元素是否在集合中 |
x not in 集合 | 判断元素x不在集合中 |
set(x) | 将x类型变量转换为集合类型 |
list = {"a","python","a"}
print(list)
# 向集合中添加元素
list.add("b")
print(list)
# 集合副本
print(list.copy())
# 集合元素个数
print(len(list))
# 移除集合中元素
list.discard("c")
#list.remove("c")
# 随机返回集合中元素,这个元素删除了更新集合
print(list.pop())
print(list)
# 判断元素是否在集合中
print("a" in list)
print("b" not in list)
# 清空集合
list.clear()
print(list)
二、序列
序列类型
- 字符串类型
- 元祖类型
- 列表类型
1、序列类型定义
序列是具有先后关系的一组元素
- 序列是一维元素向量,元素类型可以不同
- 元素间由序号引导,通过下标访问序列的特定元素
2、序列处理函数及方法
操作 | 描述 |
---|---|
x in 序列 | 元素x是否在序列中 |
x not in 序列 | 元素x是否不在序列中 |
序列1+序列2 | 连接两个序列 |
序列*n | 将序列复制n次 |
序列[i] | 索引,返回序列中第i个元素 |
序列[i:j]或序列[i:j:k] | 切片,返回序列中第i到j以k步长的元素子序列 |
list = ["123","a","python","a","345"]
print(list)
print("----")
print(list[1])
# i:j:k i正数左边->右 负数 右->左
print(list[1:4:2])
print(list[-1:-4:-2])
# 逆序输出
print(list[::-1])
print("----")
# 序列复制
print(list*3)
函数和方法 | 描述 |
---|---|
len(序列) | 返回序列长度 |
min(序列) | 返回序列中最小元素 |
max(序列) | 返回序列中最大元素 |
序列.count(元素) | 序列中出现元素的次数 |
序列.index(x)或序列.index(x,i,j) | 序列从i开始到j第一次出现元素x的位置 |
list = [12,1,2,4,6,1]
print(len(list))
print(min(list))
print(max(list))
print(list.count(1))
print(list.index(1))
print(list.index(1,0,3))
3、元祖类型及操作
元祖是一种序列类型,一旦创建就不能修改
- 使用()后tuple()创建
- 可以使用或不使用()
4、列表类型及操作
一种序列类型,创建后可以随意修改
- 使用[]或者list()创建
- 元素类型可以不同,无长度限制
函数和方法 | 描述 |
---|---|
列表[i]=x | 替换列表i处的元素为x |
列表1[i:j:k] = 列表2 | 用列表2替换列表1切片后所对应元素子列表 |
del 列表[i] | 删除列表中第i元素 |
del 列表[i:j:k] | 删除列表中第i到第j以k为步长的元素 |
列表1+=列表2 | 更新列表1,将列表2中元素添加到列表1中 |
列表*n | 更新列表,将列表中元素重复n次 |
列表.append(x) | 在列表最后添加一个元素x |
列表.clear() | 删除列表中所有元素 |
列表.copy() | 生成一个新列表赋值列表中元素 |
列表.insert(i,x) | 在列表i位置添加一个元素x |
列表.pop(i) | 将列表第i位置元素取出并删除 |
列表.remove(x) | 将列表中出现的第一个x元素删除 |
列表.reverse() | 列表元素反转 |
ls = [1,2,3,4,7,6,5]
print(ls)
print("--长度--")
print("长度:%d"%len(ls))
print("--添加--")
ls.append(8)
print(ls)
print("--复制--")
print(ls.copy())
print("--在指定位置添加--")
ls.insert(8,9)
print(ls)
print("--取出指定位元素并删除--")
ls.pop(8)
print(ls)
print("--第一个出现的指定元素删除--")
ls.remove(3)
print(ls)
print("--逆序--")
ls.reverse()
print(ls)
print("--清空--")
ls.clear()
三、字典
键值对形式的集合
1、字典类型定义
采用{<键1>:<值1>......<键n>:<值n>}或者dict()创建
2、字典处理函数及方法
函数或方法 | 描述 |
---|---|
del 字典[键] | 删除字典中键对应的数据值 |
键 in 字典 | 判断键是否在字典中 |
字典.keys() | 返回字典中所有键信息 |
字典.values() | 返回字典中所有的值信息 |
字典.items() | 返货字典中所有键值对信息 |
字典.get(键, |
键存在则返回键对应的值,不存在则返回default |
字典.pop(键, |
键存在则取出键对应的值,不存在则返回default |
字典.popitem() | 随机从字典中取出一个键值对,以元祖形式返回 |
字典.clear() | 删除所有的键值对 |
len(字典) | 返回字典中元素的个数 |
zd = {"中国":"北京","美国":"华盛顿","法国":"巴黎","city":"南京"}
print("字典长度%s:"%(len(zd)))
print("判断键(中国)是否在字典中")
print("中国" in zd)
print("删除键(美国)")
del zd["美国"]
print(zd)
print("-----")
print(zd.keys())
print(zd.values())
print(zd.items())
print("取出键")
zd.pop("city")
print(zd)
# 获取的键不存在执行后面的
print(zd.get("city1","not found"))
print(zd.pop("city1","not pop"))
print("随机取出之后")
zd.popitem()
print(zd)