一、元组的使用
用来保存多个数据。
元组和列表的区别:列表是可变的,而元组是不可变数据类型(不可增加、修改)。
1、元组的定义
nums = (1,4,6,2,3) # 元组,使用()来表示
如果元组只有一个元素,怎么表示呢
ages = (18,) # 要在最后面添加 ,
2、元组的方法
count(x) :元组中 x 元素出现的次数
例如:nums = (1,4,6,2,3,5,5,5)
nums.count(9) # 输出 3
index(x)方法:元组中 x 元素的下标位置(如果x是重复的,则输出第一个x的下标位置)
例如:nums = (1,4,6,2,3,5,5,5)
nums.count(4) # 输出 1
nums.count(5) # 输出 5
3、元组和列表的转换
直接使用tuple(转换对象)方法,tuple list set 都是这样使用的
(1)列表 --> 元组
nums = (1,4,6,2,3)
print(tuple(nums)) # 输出 [1,4,6,2,3]
(2)元组 --> 列表
words = ["yes","hello","hi"]
print(tuple(words)) # 输出 ("yes","hello","hi")
二、字典的使用
永远以键值对的方式出现;
1、特点和使用
(1). 字典是无序的,键值对的存放顺序不影响字典。
例如 :
dict1={'A':'hello','B':'book','c':'cake'}
dict2={'c':'cake','A':'hello','B':'book'}
dict1==dict2
(2). 字典可以使用哪些数据类型
键:可以存放不可变对象,比如字符串,数组,元组;不能存放可变对象,如:列表、字典
值:可以存放任意对象
2、字典的增删改
(1). 增加和修改是一样的方式
def dict_update_operate():
dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
# 新增一个键值对
dict1['E'] = 'emo'
print(dict1)
# 执行的结果:{'A': 'apple', 'B': 'book', 'C': 'cake', 'E': 'emo'}
# 单独只修改字典中的一个值
dict1['B'] = 'black'
print(dict1)
# 执行的结果:{'A': 'apple', 'B': 'black', 'C': 'cake', 'E': 'emo'}
# update()方法可以同时添加和修改多个值
dict1.update({'A': 'angle', 'F': 'file'})
print(dict1)
# 执行的结果:{'A': 'angle', 'B': 'black', 'C': 'cake', 'E': 'emo', 'F': 'file'}
(2)删除
def dict_del_operate():
dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
del dict1['A'], dict1['C']
print(dict1)
# 执行的结果:{'B': 'book'}
(3)清空字典
def dict_empty_operate():
dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
print(id(dict1))
# 执行的结果:4433023168
# clear()方法,清空元组,该元组地址还在
dict1.clear()
# 相当于重新生成了一个字典,地址已经换了
dict1 = {}
print(id(dict1))
# 执行的结果:4433026688 与原地址不一样了
(4)根据键来 判断是否存在 在字典中
# 根据键来 判断是否存在 在字典中: in ,not in
def dict_exist_operate():
# 使用关键字:in ,not in
dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
print('B' in dict1) # 执行的结果:True
print('E' not in dict1) # 执行的结果:True
(5)字典的遍历
# 遍历字典中的key,value
def dict_ergodic_operate():
dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
# 遍历key
for key in dict1.keys():
print(key)
# 执行的结果:A B C
# 遍历value
for value in dict1.values():
print(value)
# 执行的结果:apple book cake
# 遍历key 和 value
for key, value in dict1.items():
print("key:", key, " value:", value)
# 执行的结果如下:
# key: A value: apple
# key: B value: book
# key: C value: cake
三、集合的使用
1、特点
集合是一种无序、可变的数据结构,只能包含不可变的元素,例如整数、浮点数、字符串和元组等。
2、集合的增删改
# 创建空集合
s = set()
# 创建含有元素的集合
s = {1, 2, 3, 4}
# 新增一个元素
s.add(5)
# 添加多个元素
s.update([6, 7, 8])
# 移除一个元素,如果元素不存在会报错
s.remove(1)
# 移除一个元素,如果元素不存在不会报错
s.discard(2)
# 随机移除一个元素,并返回这个元素
s.pop()
# 清空集合
s.clear()
# 删除集合
del s
3、集合的排序
sort()方法 # 永久排序
list.sort(reverse=True) # 倒序排
sorted(list) # 临时排序
sorted(list,reverse=True) # 临时倒序排序
4、集合操作
t = {3, 4, 5, 6}
s.union(t) # 并集
s | t # 并集
s.intersection(t) # 交集
s & t # 交集
s.difference(t) # 差集
s - t # 差集
s.symmetric_difference(t) # 对称差集
s ^ t # 对称差集
s.issubset(t) # 判断是否是子集
s <= t # 判断是否是子集
s.issuperset(t) # 判断是否是超集
s >= t # 判断是否是超集
s != t # 判断是否不等
5、集合的可变性
f = frozenset([1, 2, 3, 4]) # 创建一个不可变集合