day-4 序列类型方法与数据类型转换
一,序列类型方法
序列类型的概念: 数据的集合 再序列类型里面可以存放任意的数据也可以对这个数据进行更方便的操作 这个操作叫增删改查(crud)
增删改查是操作数据最底层的操作:
增加全新的数据
修改原来的数据
删除指定的数据
查看指定的数据
方法: 解决问题的办法/特定的功能
在编程中,序列类型的方法指的就是对序列类型数据进行增删改查相关操作的行为
列表方法
增
append: 添加一个数据 (添加到列表最后一位 追加)
语法格式:列表名.append(数据)
insert: 添加一个数据 用下标指定位置 原数据会被挤到后面(插队)一个位置只能增加一个数据 一个罗比一个坑
语法格式:列表名.insert(下标,数据)
extend: 追加一个序列类型的数据到最后一位 把数据打散
语法格式:列表名.extend(数据)
append和extend区别:
append的添加将我们的新增元素视为一个整体进行添加
extend的添加将元素初步拆分之后进行添加
追加的数据他可以是单个元素 也可以是列表 元组等等 但是不能是单个数字
#列表方法
#增
#先写方法,再输出
name=['高启强','杨奇鑫','荷包蛋','李明天']
#name.append('刘天成') #添加数据到最后一位
#name.append('知风')
#name.insert(1,'莎娃')#根据下标插入新数据
#name.insert(1,'莎娃','婷婷') #报错 一个萝卜一个坑
#name.extend('潘俊余') #打散数据到最后一位
#name.extend(['潘俊余','卢顺宽'])
#name.extend(222) #不能数值打散
print(name)
删
pop: 在有指定下标删除一个值 没有指定的下标时 会默认删除最后一个数据
语法格式:列表名.pop(下标)
remove: 删除一个指定的数据 当列表里有很多个此数据时 从第一个开始删除
语法格式:列表名.remove(数据)
clear: 清空列表全部数据
语法格式:列表名.clear()
del = delete
del 列表名[下标]
del 列表名[:] #清空所有列表
del 列表名
#删除
name=['高启强','杨奇鑫','荷包蛋','李明天','何家辉','于健康','肖思宇','高启强']
#name.pop() #默认最后一个
#name.pop(1)
#name.remove('高启强')
#name.clear() #全部清空
#name.remove('婷婷')#不存在会报错
#name.remove('高启强') #多个存在的时候 删除第一个
#del name[2]
#del name[2:5]
del name[::2] #输出的内容是删除后留下的数据
#del name #直接干掉了列表 程序不知道有这个列表的存在了
print(name)
改
单个修改: 直接通过下标修改
语法格式:列表名[下标]=新的值
多个修改: 通过切片的方式进行修改 修改之后的数据 只能多不能少
语法格式:列表名[起点:终点]=数据1,数据2
#修改
#name=['高启强','杨奇鑫','荷包蛋','李明天','何家辉']
#name[2]='陈同旺'
#name[4:]='隔壁老王'
#name[4:]='隔壁老王','婷婷','小李','小周'
#name[1]='隔壁老王','婷婷','小李','小周' #一对多 数据为元组类型存放
#print(name)
#name=[1,2,3,4,5]
#name[2:]=12,4
#name[2]=12,4
#print(name)
name=['高启强','杨奇鑫','荷包蛋','李明天','何家辉']
name[1:3]='w'
print(name)
#对序列类型没有用 针对数字只能多不能少
name=[1,2,3,4,5]
name[:2]=12,4
print(name)
查
查询方法: 要显示内容都要用print输出
index: 根据内容获取指定数据下标
语法格式: 列表名.index(数据)
列表名.index(数据,起点值)
count: 求和 统计数据出现的次数
语法格式: 列表名.count(数据)
#查
name=['高启强','杨奇鑫','荷包蛋','李明天','何家辉','高启强']
print(name.index('高启')) #不存在会报错
print(name.index('高启强',3)) #通过设置范围 去查询数据
print(name.count('高启强'))
其他
sort: 对列表内容进行排序
语法格式: 列表名.sort() 升序(从小到大)
列表名.sort(reverse=True) 降序(从大到小)
#其他
talk=[5,6,8,1,2,3,2,7,9,10]
#talk.sort()
talk.sort(reverse=True)
print(talk)
元组方法
查
查询方法: 要显示内容都要用print输出
index: 根据内容获取指定数据下标
语法格式: 元组名.index(数据)
元组名.index(数据,起点值)
count: 求和 统计数据出现的次数
语法格式: 元组名.count(数据)
元组不可修改 所以不能增删改
字符串方法
字符串和元组是一样的不可变类型 里面的数据是不可以更改的 除非重新赋值 否则里面的东西是修改不了的 (所以字符串的方法都是要用print输出才看的到)
所以字符串严格意义来说不能增删改查的操作
字符串的本体是不会被修改 但是可以通过方法给你看一下效果
增
字符串没有专门的增加方法 直接用+号拼接即可
print('喜欢'+'喝水水')
删
replace:可以删除/可以替换
语法格式:
字符名.replace('替换数据','')
字符名.replace('替换数据','新值')
字符名.replace('替换数据','新值',修改次数) 从左开始
#删除
talk='多跳本草纲目身体倍香吃饭倍香'
#print(talk.replace('多','')) #清除数据
#print(talk.replace('多','一起'))
print(talk.replace('香','好',1))
改
upper:字母全大写
语法格式:字符名.upper()
lower:字母全小写
语法格式:字符名.lower()
title:单词首字母大写 以空格区分
语法格式:字符名.title()
strip:去除字符串左右两边的空格
语法格式:字符名.strip()
split:划分 根据指定的内容 切分字符串 得到的结果为一个列表
语法格式:
字符名.split('切割对象')
字符名.split('切割对象',修改次数)
#改
talk=' hello hi '
print(talk.upper())
print(talk.lower())
print(talk.title())
print(talk.strip())
print(talk.split('h',1))
查
find:通过内容 获取数据下标
语法格式:
字符名.find('数据')
字符名.split('数据',起点)
count: 求和 统计数据出现的次数
语法格式: 字符名.count('数据')
isdigit:判断字符串是否为纯数字
语法格式: 字符名.isdigit()
isalpha:判断字符串是否为纯字母/字符
语法格式: 字符名.isalpha()
endswith:判断字符串后缀 是否与数据相等
语法格式: 字符名.endswith('数据')
talk='ttszpld'
print(talk.find('t'))
print(talk.count('t'))
print(talk.isdigit())
print(talk.isalpha())
print(talk.endswith('d'))
len函数 -- 获取序列类型的长度 一个序列类型有几个数据
语法格式: len(数据)
talk='ttszpld'
print(len(talk))
二,数据类型转换
数据类型的转换有两种形式: 自动转换 强制转换
#自动转换 bool(不用改变强行转换)
>>> 3+True
4
>>> False+True
1
#强制转换
可以把一些数据在一个合法的情况下转换为其他类型
>>> a='很牛'
>>> int(a)
#转换为新的数据需要重新赋值
>>> a=88
>>> str(a) #转换为字符串形式
'88'
>>> a #这个还是整数形式
88
>>> b=str(a) #这个情况下 就是b的变量接收了字符串形式的88
>>> b
'88'
int(数据) --- 把数据转为整形
float(数据) --- 把数据转为浮点型
bool(数据) --- 把数据转为布尔类型
str(数据) --- 把数据转为字符串
list(数据) --- 把数据转为列表
tuple(数据) --- 把数据转为元组
input可以用来给变量赋值
转型后一定要重新赋值
input得到的结果默认为str类型(给input前面转换类型)
>>> name=input('输入你的名字')
输入你的名字婷婷
>>> print(type(name))
<class 'str'>
>>> age=input('输入你的年龄')
输入你的年龄18
>>> print(type(age))
<class 'str'> #input得到的结果都是默认为str类型 如果你想要为其他的类型就要转换
>>> age=int(input('输入你的年龄'))
输入你的年龄18
>>> print(type(age))
<class 'int'>
##练习
1.序列类型方法的本质,就是帮助我们这个数据进行更方便的操作这个操作叫---
2.现有列表如下,请把它修改为[tt,'祝大家吃嘛嘛香',False,888]
li=[78,520,'祝大家吃嘛嘛香',8.8]
3. 简述列表与元组的区别?
4. 现有几串字符串如下,请通过字符串方法完成对应操作
'68686868686' 1.判断是否是纯数字 获取里面一共有几个6
'DajiAniuDi' 1.请把它改为全大写输出 请把它改为全小写输出
5.有一字符串 talk1 = 大家吃土,请把它改为大家很有钱输出