目录
序列类型方法与类型转换
1、序列类型方法
概念:存储多个数据对数据进行更方便的操作,增删改查操作是数据最底层的数据
列表方法:
1). 增
append: 添加一个数据(添加到列表的最后一位)
语法格式:列表名.append(数据)
name=['zhangsan','lisi'] name.append('wangwu') print(name) 结果:['zhangsan', 'lisi', 'wangwu']
insert:添加一个数据,用下标指定位置(如果原来的位置有数据,则原本的数据向后移动一个位置)
语法格式:列表名.insert(下标,数据)
name=['zhangsan','lisi'] name.insert(2,'wangwu') print(name) 结果:['zhangsan', 'lisi', 'wangwu']
extend:追加一个序列类型数据到最后一位,会把数据拆分
语法格式:列表名.extend(数据)
name=['zhangsan','lisi','wangwu'] name.extend('sangjie') print(name) 结果:['zhangsan', 'lisi', 'wangwu', 's', 'a', 'n', 'g', 'j', 'i', 'e']
append和extend的区别:
append 将我们新增的元素视为一个整体进行添加
extend 添加元素初步拆分之后进行添加
2). 删除
pop:指定下标,删除一个值,没有指定下标时,删除末尾值
语法格式:列表名.pop(下标)
name=['zhangsan','lisi','wangwu'] name.pop(1) print(name) 结果:['zhangsan', 'wangwu']
remove:删除一个指定的数据
语法格式:列表名.remove(数据)
name=['zhangsan','lisi','wangwu'] name.remove('zhangsan') print(name) 结果:['lisi', 'wangwu']
clear:清除(所有数据)
语法格式:列表名.clear()
name=['zhangsan','lisi','wangwu'] name.clear() print(name) 结果:[]
del(delete):列表名[起点:终点:步长]
列表名[下标]
name=['zhangsan','lisi','wangwu'] del name[2]#删除'wangwu'根据索引删除 print(name) 结果:['zhangsan', 'lisi'] ============================================= name=['zhangsan','lisi','wangwu','zhaoliu'] del name[1:3]#删除'lisi','wangwu'通过切片删除 print(name) 结果:['zhangsan', 'zhaoliu'] ============================================= name=['zhangsan','lisi','wangwu','zhaoliu','sangjie','tingan'] del name[::2]#删除'zhangsan','wangwu','sangjie'通过步长删除 print(name) 结果:['lisi', 'zhaoliu', 'tingan']
3). 改
单个修改:通过下标修改
语法格式:列表名[下标]=新的值
name=['zhangsan','lisi','wangwu','zhaoliu'] name[0]='sangjie' print(name) 结果:['sangjie', 'lisi', 'wangwu', 'zhaoliu']
多个修改:通过切片的方式进行修改
语法格式:列表名[起点:终点]=数据1,数据2,数据3
修改的数据如果是数值型,下标指定了几个数据,就要修改几个数据,只能多不能少
num=[1,2,3,4,5,6,7,8] num[0:2]=10,20 #通过切片去修改数据,[0:2]对应的要修改的下标为0和1,所以是修改两个数据,要给两个新的值 num[0:2]=10 #通过切片去修改数据,[0:2]对应的要修改的下标为0和1,所以是修改两个数据,这里只给了一个数据,会报错 num[0:2]='1'#通过切片去修改数据,[0:2]对应的要修改的下标为0和1,所以是修改两个数据,但是这里新的值为'1',为字符串类型,所以不会报错 第一条结果:[10,20,3,4,5,6,7,8] 第二条结果: =============== RESTART: C:/Users/Administrator/Desktop/lianxi.py ============== Traceback (most recent call last): File "C:/Users/Administrator/Desktop/lianxi.py", line 2, in <module> num[0:2]=10 TypeError: can only assign an iterable >>> 第三条结果:['1', 3, 4, 5, 6, 7, 8] ===================================================================== 当要修改的数据是字符串时 sttr=['zhangsan','lisi','wangwu','zhaoliu'] sttr[0:2]='甲' print(sttr) 结果:['甲', 'wangwu', 'zhaoliu'] ===================== sttr=['zhangsan','lisi','wangwu','zhaoliu'] sttr[0:2]='甲乙' print(sttr) 结果:['甲','乙', 'wangwu', 'zhaoliu'] ===================== sttr=['zhangsan','lisi','wangwu','zhaoliu'] sttr[0:2]='甲乙丙' print(sttr) 结果:['甲','乙','丙', 'wangwu', 'zhaoliu'] ===================== sttr=['zhangsan','lisi','wangwu','zhaoliu'] sttr[0:2]='jia' print(sttr) 结果:['j', 'i', 'a', 'wangwu', 'zhaoliu'] ===================== 总结:当新的值为字符串的时候,不论切片的空间是多少,都可以修改。在修改数据时,新的值会被拆分成单个的字符放在相应的下标位置
4). 查
index:根据内容,获取指定数据的下标,当列表中有重复数据时,会回显第一个值的下标
语法格式:列表名.index(数据)
name=['A','B','C','D','E','F','G'] print(name.index('A')) 结果:0
count:统计数据出现的次数
语法格式:列表名.count(数据)
name=['A','A','A','A','A','A','A'] print(name.count('A')) 结果:7
5). 其它
sort:对列表内容进行排序,默认升序
语法格式:列表名.sort()
num=[1,34,53,2,35,66,88] num.sort() print(num) 结果:[1, 2, 34, 35, 53, 66, 88]
降序:列表名.sort(reverse=True)
num=[1,34,53,2,35,66,88] num.sort(reverse=True) print(num) 结果:[88, 66, 53, 35, 34, 2, 1]
2、元组方法
1). 查(同列表查询方法)
index:根据内容,获取指定数据的下标,当列表中有重复数据时,会回显第一个值的下标
语法格式:列表名.index(数据)
name=('zhangsan','lisi','wangwu') print(name.index(zhangsan)) 结果:0
count:统计数据出现的次数
语法格式:列表名.count(数据)
name=('A','A','A','B','B','C') print(name.count('A')) 结果:3
3、字符串方法
字符串和元组一样,不可修改,除非重新赋值。
2). 增
字符串没有专门的增加方法,直接用加号拼接即可
str1='Hello'+'World' print(str1) 结果:HelloWorld
3). 删
replace:可以删除
语法格式:字符串.replace('原始值','新值')
字符串.replace('原始值','')
字符串.replace('原始值','新值',更改的次数)
str='ABCDEFG' print(str.replace('A','Z')) #结果:ZBCDEFG print(str.replace('A','')) #结果:BCDEFG str1='AAAAA' print(str.replace('A','B',5)) #结果:BBBBB
4). 改
upper:字母全大写
语法格式:字符串.upper()
str='hello world' print(str.upper()) 结果:HELLO WORLD
lower:字母全小写
语法格式:字符串.lower()
str='HELLO WORLD' print(str.lower()) 结果:hello world
title:单词首字母大写(以空格区分)
语法格式:字符串.title()
str='hello world' print(str.title()) 结果:Hello World
strip:去除字符串两边的空格
语法格式:字符串.strip()
str=' hello world ' print(str.strip()) 结果:hello world
split:划分,根据指定内容进行切割,得到一个列表
语法格式:字符串.split()
str='hello world' print(str.split('w')) 结果:['hello ', 'orld'] #有字符串 s='albblcc' 将构造成一个列表 lst=[‘a’,’lbblcc’] s='albblcc' lst=[s.split('l',1)[0],s.split('a')[1]] s.split('l',1) 结果是['a','bblcc'] 取s[0] s.split('a')结果是['','lbblcc'] 取s[1] 所以lst=[s[0],s[1]]=['a','lbblcc']
4). 查
find:通过内容获取数据的下标
语法格式:字符串.find(内容)
str='ABCDEFG' print(str.find('A')) 结果:0
count:统计字符出现的次数
语法格式:字符串.count(内容)
str='AAAAAA' print(str.count('A')) 结果:6
isdigit:判断字符串是否为纯数字
语法格式:字符串.isdigit()
str='123456 print(str.isdigit()) 结果:True str='123a456' print(str.isdigit()) 结果:False
isalpha:判断字符串是否为纯字母
语法格式:字符串.isalpha()
str='abcdefg' print(str.isalpha()) 结果:True str='abcd1efg' print(str.isalpha()) 结果:False
endswith:判断字符串最后一个字符是否与数据相等
语法格式:字符串.endswitch(内容)
str='ABCDEFG' print(str.endswith('G')) 结果:True
len函数:获取序列类型的长度
语法格式:len(变量)
str='ABCDEFG' print(len(str)) 结果:7
4、数据类型转换
分为两种形式
1). 自动转换
print(3+True) 结果:4 print(False+True) 结果:1 True由bool类型转换为数值型
2). 强制转换
# 要在合理的场景下进行转换 # input输入的结果默认是str类型 age=input('年龄:') 年龄:18 print(type(age)) #结果:<class 'str'> int()---把数据转换为整型 int('234') #由str转为int int('zhangsan') #会报错 结果会报错 int(8.8) # 结果是8 浮点型转整型,是去除小数点后的数,不是四舍五入 float()---把数据转换为浮点型 num=2 float(num) 结果:2.0 bool()---把数据转换为布尔型 str()---把数据转换为字符串型 list()---把数据转换为列表类型 tuple()---把数据转换为元组类型 set()---把数据转换为集合类型