第十天 公共操作 |
公共操作:数据序列基本上都支持的操作
1、运算符
2、公共方法
3、容器类型转换
文章目录
一、运算符
1、运算符
1、运算符+/*,合并、复制,支持的容器类型是:字符串、列表、元组
2、in 和 not in,元素是否存在,不存在,支持字符串、列表、元组、以及字典
2、代码
先准备数据
str1 = 'aa'
str2 = 'bb'
list1 = [1,2]
list2 = [10,20]
t1 = (1,2)
t2 = (10,20)
dict1 = {'name':'Python'}
dict2 = {'age': 20}
2-1加(代表合并)
print(str1+str2)
print(list1+list2)
print(t1+t2)
# print(dict1+dict2)
# 字典不支持+运算,TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
2-2乘(代表复制)
乘以某个整数,可以快速复制相同的内容。
print(str1*5) # aaaaaaaaaa
print('-'*10) # ----------
print(list1*5) # [1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
print(t1*5) # (1, 2, 1, 2, 1, 2, 1, 2, 1, 2)
# print(dict1*5) # 字典不支持*
# TypeError: unsupported operand type(s) for *: 'dict' and 'int'
2-3in和not in
判断是否存在序列中(字符串、列表、元组、字典)
in存在返回True,不存在返回False
not in不存在返回True,存在返回False
# 1、字符a是否存在
print('a' in str1)
print('b' not in str1)
# 2、判断数据10是否在列表中存在
print(10 in list1)
print(10 not in list1)
# 3、判断数据10是否在元组中存在
print(10 in t1)
print(10 not in t1)
# 4、判断name是否在字典中存在
print('name' in dict1)
print('name' not in dict1) # False
print('name' in dict1.keys()) # True
print('name' in dict1.items()) # False,因为看的是键值对
二、公共方法
1、公共方法(字符串、列表、元组、集合、字典)
即,容器类型都能使用的公共函数
函数 | 描述 |
---|---|
len() | 计算容器中元素的个数 |
del或del() | 删除 |
max() | 返回容器中元素的最大值 |
min() | 返回容器中元素的最小值 |
range(start,end,step) | 生成从start到end的数字,步长为step,供for循环使用 |
enumerate() | 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个缩影序列,同时列出数据和数据下标,一般用在for循环中 |
2、代码
准备数据(字符串、列表、元组、集合、字典)
str = 'abcdef'
list = [10,20,30,40,50]
tuple =(10,20,30,40,50)
set = {10,20,30,40,50}
dict = {'name':'Ton','age':20,'birthday':'9月7日'}
2-1len()
print(len(str)) #6
print(len(list)) # 5
print(len(tuple)) # 5
print(len(set)) # 5
print(len(dict)) # 3
2-2del 数据 或 del(数据)
# del 数据 或 del(目标)
del str
print(str)
list = [10,20,30,40,50]
# del(list) # 空列表<class 'list'>
del(list[0]) # [20, 30, 40, 50]
print(list)
del tuple
print(tuple) # <class 'tuple'>
del dict['name']
print(dict) # {'age': 20, 'birthday': '9月7日'}
衍生
若是以列表关键字衍生出来的名字,如list1、list_digit等命名,运行结果会直接报错告知,该变量名没有定义;若是以序列关键字进行命名变量,若为空,将直接返回该序列的类型,表示为空!!
tuple1 = (10,20,30)
del tuple1
print(tuple1) # NameError: name 'tuple1' is not defined
2-3max()
# max()以str和list为例
print(max(str)) # f
print(max(list)) # 50
2-4min()
# min()以str和list为例
print(min(str)) # a
print(min(list)) # 10
衍生-报错
EOL while scanning string literal
原因:字符串没有成对出现
错误示例dict = {‘name’:‘Ton’,‘bi’:‘9月7日’,‘age’:20’}
2-5range()
含义:生成从start到end的数字,步长为step,供for循环使用
生成可迭代对象(用for)
语法:for 变量 in range(start,end,step):
范围:[ ),不包括结束位
step可省
# 1 2 3 4 5 6 7 8 9标准写法
for i in range(1,10,1):
print(i) # 一竖列
# 1 3 5 7 9调整步长
for i in range(1,10,2):
print(i) # 一竖列
# 0 1 2 3 4 5 6 7 8 9完全化简的写法
for i in range(10): # 10代表end,默认从0开始,step步长默认是1
print(i)
2-6enumerate()
含义:同时列出数据和数据下标,一般用在for循环中
语法:enumerate(可遍历对象,start=0)
返回结果:是元组,两个数据分别是,可迭代对象的下标、数据
list1 = {'a','b','c'}
for i in enumerate(list1):
print(i)
# (0, 'b')
# (1, 'a')
# (2, 'c')
# 按需求更改下标对应的起始值,例如学号
for i in enumerate(list1,start=1):
print(i)
# (1, 'b')
# (2, 'a')
# (3, 'c')
三、容器类型转换
已有的数据类型和想要的数据类型不一致,需要用到容器类型的转换
1、tuple():转换成元组
2、list():转换成列表
3、set():转换成集合,集合的数据无序、去重
4、列表去重后排序
list1 = [10,20,30,40,50]
s1 = {100,200,300,500}
t1 = ('a','b','c','d','e')
3-1tuple()
将某个序列转换成元组
print(tuple(list1)) # (10, 20, 30, 40, 50)
print(tuple(s1)) # (200, 100, 500, 300)
3-2list()
将某个序列转换成列表
print(list(t1)) # ['a', 'b', 'c', 'd', 'e']
print(list(s1)) # [200, 100, 500, 300]
3-3set()
1、将某个序列转换成集合
2、集合可以快速完成列表去重
3、集合不支持下标
4、集合的数据无序
print(set(t1)) # {'d', 'e', 'b', 'a', 'c'}
print(set(list1)) # {40, 10, 50, 20, 30}
3-4列表去重后排序
问题:如何快速进行列表去重后排序?
1、无法使用set,因为其没下标,不能sort
2、方法:先去重,再转换成list排序
# 快速:如何列表去重后排序?
list1 = [10,20,10,30,40,50]
set_w = set(list1) # 转换成set类型数据
list_w = list(set_w) # 转换成list类型数据
list_w.sort() # list排序
print(list_w) # 输出结果
# [10, 20, 30, 40, 50]
四、总结
1、运算符
1、运算符+/*,合并、复制,支持的容器类型是:字符串、列表、元组
2、in 和 not in。元素是否存在,不存在,还支持字典
3、乘以某个整数,可以快速复制相同的内容。
2、公共方法
1、len():计算容器中元素的个数
2、del或del():删除
3、max():返回容器中元素的最大值
4、min():返回容器中元素的最小值
5、range(start,end,step):生成从start到end的数字,步长为step,供for循环使用
6、enumerate():函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个缩影序列,同时列出数据和数据下标,一般用在for循环中
3、容器类型转换
1、tuple():转换成元组
2、list():转换成列表
3、set():转换成集合,集合的数据无序、去重
4、列表去重后排序