【Python零基础】19天从零开始学Python——第十天 公共操作

第十天 公共操作
B站链接:https://www.bilibili.com/video/BV1gf4y1S7Y9

公共操作:数据序列基本上都支持的操作
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、列表去重后排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值