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)
posted @ 2022-08-11 22:05  胡同咖啡  阅读(62)  评论(0编辑  收藏  举报