python的数据结构类型:
1)字符型
2)字典
3)列表
4)元组
一、序列
序列:
1)是python中的一类数据类型,比如字符串、列表
2)序列类型的对象是可以进行循环便利
1.1序列特性
1)索引:指的就是在序列中找到指定的元素的哪个编号
2)切片:指的是从序列中提取一部分内容
3)加法:序列对象可以将多个序列合并成一个
4)乘法:可以将序列通过乘法输出多个相同的
1.2序列操作
1)索引的操作
格式:
案例:
2)切片操作
格式:
案例:
3)加法操作:
格式:
新的变量=变量1+变量2
案例:
案例:让用户随意输入内容,实现用户输入的内容始终在框内,而且居中
呈现这样的结果
答案:
4)乘法
格式:列表名*数字
案例:
5)成员资格
1)判断元素是否在序列当中
2)in/not in
3)返回的是布尔值:真 假
案例:判断用户输入的内容中是否有c,如果有,就是提示有c,并终止程序,如果没有,就提示无c,并要求用户重新输入,而且最多输入3次,使用两种方法实现
答案1:
答案2:
答案3:
二、列表
1)列表也是序列的一种
2)列表支持序列的所有的基础操作:加法、乘法、成员关系、切片、索引
2.1列表基础
定义列表
案例
注意:列表的元素可以是多种类型
1)数字
2)字符型
3)列表
案例:
列表是可变类型
1)所以可以 原地修改列表中的元素的值
案例:
数据类型互相转换
1)int() 将字符串类型修改为整型
2)float() 将对象转换为浮点数
3)list() 将对象转换成列表
4)join() 将列表中的元素转换【拼接】成一个字符串
案例 :将字符串转换为列表
join的格式
案例:让用户输入1-9的数字,输出的结果是 1+2+3+4+5+6+7+8+9【注意不是求和】
补充知识:
s = "" 定义一个空字符串 s = 0 定义一个空数字 s = [] 定义一个空列表
2.2列表操作
索引
案例
赋值
案例:
删除元素
1)删除单个元素
2)删除多个元素
案例:
切片
格式:
1) 正向切片:步长是正数,从左向右截取数据
2)反向切片:步长是负数,从右向左截取数据
案例:
替换操作
1)替换一个元素,方法同前面讲到的赋值操作
2)替换多个元素,
案例
2.3列表的方法
格式:列表名.方法()
列表中添加元素
1)+
2)extend:在列表的末尾添加内容
3)append:在列表的末尾添加内容
4)insert:在列表的指定的位置添加内容
案例:让用户输入内容,将用户的输入组合成一个列表,直到用户输入q终止输入,并退出【用5方式】
li =[]
while True:
userInpurt=input("请输入一些内容:")
if userInpurt =="q":
print("有q")
break
li.append(userInpurt)
print(li)
案例:生成一个1-100的列表
# 方法1:手动输入100个数字
# 方法2:循环生成100个数字 - for 版
for num in range(1,101):
print(num)
# 方法3:循环生成100个数字 - while 版
n=0
li=[]
while n<100:
n+=1
li.append(n)
print(li)
# 方法4:用extend结合range
li1 = []
li1.extend(range(1,101))
print(li1)
定义空类型的对象
1)空字符串: str = ""
2)空列表:str = []
方法2:获取列表的元素个数
格式:
1)len(列表名)
方法3:计算元素出现次数
格式:
1)列表名.count(元素)
案例:让 用户输入一些内容,判断qq一共出现了几次?
方法1
li=[]
n=1
while True:
userInput=input("请输入一下内容:")
if userInput=="n":
break
li.append(userInput)
n += 1
num=li.count("qq")
print(num)
方法2
list1 = []
while True:
userinput =input("输入").strip().lower()
if userinput == "n":
break
else:
list1.append(userinput)
print(list1)
print(list1.count("qq"))
方法4:找目标元素的索引
格式:
1)列表名.index(元素)
如果找到了目标元素,那么会得到他的索引值
如果没有目标元素,那么会抛出异常【报错】
案例:将列表 li = ["ab","c","d1","c","bb","p"] 中的 d1 修改为d10【两种方式实现】
方法1
li = ["ab","c","d1","c","bb","p"]
li[2] = "d10"
print(li)
方法2
li = ["ab","c","d1","c","bb","p"]
num=li.index("d1")
li[num]="d10"
print(li)
方法5:删除列表元素
1)del
格式:del 列表名[索引]
2)remove
格式:列表名.remove(元素)
3)pop: 每次执行pop方法,可以从列表中取出最后一个元素
格式:列表名.pop()
案例:删除li中的第三个元素
案例:删除li中的c
案例:逐一打印输出列表中的元素【至少两种方法实现】
删除
1)del 列表名[0]:删除列表的第一个元素
2)del 列表名:删除列表对象
3)del 列表名[:] 删除列表中的所有元素,列表变成空列表
方法6:列表元素顺序翻转
格式:
1)列表.reverse()
方法7:字符串翻转
格式
1)reversed(字符串)
2)注意:
转换后的结果是一个python对象,必须借助于list方法转换成列表,此时才可以进行显示
案例:将li中的内容逆序显示
案例:将字符串abc123转换为321cba
方法8:列表元素排序
格式:
1)列表名.sort()
sort中的参数
reverse=True 实现逆序排序
案例:li1 = [3,2,1,7,6,4,5] 实现正序和逆序排序
注意:复制列表对象的方法
1)新列表=旧列表[:]
案例:将li1的值复制给li2,然后修改li2的最后一个值
案例:实现按照列表元素长度排序
方法9:列表推导式
格式
案例:用列表推导式的方法输出1-10
案例:用列表推导式的方法输出1-10的平方
案例:用列表推导式的方法输出1-10之间的偶数
补充:
1)max(列表名)
2)min(列表名)



