Python基础语法学习(3)
文章目录
容器:元组、字典、集合
-
元组的定义和特点
元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。
# 多个数据元组 t1 = (10, 20, 30) # 单个数据元组 t2 = (10,) t2 = (10,) print(type(t2)) # tuple t3 = (20) print(type(t3)) # int t4 = ('hello') print(type(t4)) # str
⼀个元组可以存储多个数据,python中不允许修改元组的数据,包括不能删除其中的元素。
注意:如果定义的元组只有⼀个数据,那么这个数据后面最好添加逗号,否则数据类型为原本的数据类型而不是元组
-
元组的常见操作
元组数据不支持修改,只支持查找,具体如下:
按下标查找数据
tuple1 = ('aa', 'bb', 'cc', 'bb') print(tuple1[0]) # aa
1.index():
查找某个数据,如果数据存在返回对应的下标,否则报错, 语法和列表、字符串的index方法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb') print(tuple1.index('aa')) # 0
2.count():
统计某个数据在当前元组出现的次数。
tuple1 = ('aa', 'bb', 'cc', 'bb') print(tuple1.count('bb')) # 2
3.len():
统计元组中数据的个数。
tuple1 = ('aa', 'bb', 'cc', 'bb') print(len(tuple1)) # 4
注意:元组内的直接数据如果修改则立即报错,但是如果元组里面有列表,修改列表里面的数据则是支持的
tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30) print(tuple2[2]) # 访问到列表 # 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30) tuple2[2][0] = 'aaaaa' print(tuple2)
-
字典的定义和特点
类似哈希表,字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标
字典的特点:
- 符号为大括号
- 数据为键值对形式出现
- 各个键值对之间用逗号隔开
# 有数据字典 dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # 空字典 dict2 = {} dict3 = dict()
注意:⼀般称冒号前面的为键(key),简称k;冒号后面的为值 (value),简称v。
-
字典常见操作
操作目的 操作写法 增加键值对 字典序列[key] = 值 删除键值对/删除字典 del() / del 字典序列[key] 清空字典 字典序列.clear() key值查找 字典序列[key] / 字典序列.get(key, 默认值) 获取字典的所有的键 字典序列.keys() 获取字典所有的值 字典序列.values() 获取字典所有键值对 字典序列.items() 注意:如果key存在则修改这个key对应的值;如果key不存在则新增 此键值对
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} dict1['name'] = 'Rose' # 结果:{'name': 'Rose', 'age': 20, 'gender': '男'} print(dict1) dict1['id'] = 110 # {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110} print(dict1)
del() / del:删除字典或删除字典中指定键值对。
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} del dict1['gender'] # 结果:{'name': 'Tom', 'age': 20} print(dict1)
如果当前查找的key存在,则返回对应的值;否则则报错
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1['name']) # Tom print(dict1['id']) # 报错
字典序列.get(key, 默认值)
注意:如果当前查找的key不存在则返回第⼆个参数(默认值), 如果省略第⼆个参数,则返回None
-
字典的遍历
遍历方式 | 操作写法 |
---|---|
遍历字典的key | 可以用for直接遍历 字典序列.keys() |
遍历字典的value | 可以用for直接遍历 字典序列.values() |
遍历字典的元素 | 可以用for直接遍历 字典序列.items() |
遍历字典的键值对 | for key,value in 字典序列.items() |
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key in dict1.keys():
print(key)
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for value in dict1.values():
print(value)
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for item in dict1.items():
print(item)
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key, value in dict1.items():
print(f'{key} = {value}')
实践演练:
Python里的集合其实就是set 自带去重 同样可以储存不同类型元素
创建集合使⽤ {} 或 set() , 但是如果要创建空集合只能使 ⽤ set() ,因为 {} ⽤来创建空字典。
s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
s4 = set()
print(type(s4)) # set s5 = {} print(type(s5)) # dict
集合的特点
1.集合可以去掉重复数据;
2.集合数据是⽆序的,故不⽀持下标
3.{}代表的是空字典,不是空集合,创建空集合,需要set()
操作目的 | 操作方法 |
---|---|
增加数据 | 集合.add() / 集合.update() |
删除数据 | 集合.remove() / 集合.discard / 集合.pop() |
查找数据 | in 和 not in |
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}
因为集合有去重功能,所以,当向集合内追加的数据是当前集合已 有数据的话,则不进行任何操作。
s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)
update(), 追加的数据是序列。
s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10) # 报错
print(s1)
remove(),删除集合中的指定数据,如果数据不存在则报错。
s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)
discard(),删除集合中的指定数据,如果数据不存在不会报错。
s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)
pop(),随机删除集合中的某个数据,并返回这个数据。
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)
in:判断数据在集合序列
not in:判断数据不在集合序列
实践演练: