序列和索引
关于序列的相关操作
1.切片操作
- 省略开始位置,默认是从0开始
- 省略步长,步长默认是1
- 省略结束位置,默认是最后
- 省略开头和结尾,只写步长,就是默认是在全部里切
2.相加操作
3.相乘操作
4.序列的相关操作符和函数的使用
这里面min和max的判断是按照ASCII码值来计算的
一、列表
#1.直接使用[]创建列表
lst=['hellow','world',98,99,100]
#2.使用内置函数list()创建列表
lst2=list('helloworld')
列表是序列中的一种,对序列的操作符、运算符、函数 均可以使用
列表的遍历
#列表的遍历操作
lst=['hello','word','urbun']
#1.使用遍历循环for遍历列表元素
for item in lst:
print(item)
#2.用for循环,range()函数,根据索引进行遍历
for i in range(0,len(lst)):
print(i,'-->',lst[i])
#3.enumerate()函数
for index,item in enumerate(lst):
print(index,item)#index是序号,不是索引
#手动修改序号的起始值
for index,item in enumerate(lst,start=1):#start可以不写
print(index,item)
enunerate函数
列表的操作
1.列表的相关操作
2.列表的排序操作
(1)列表对象的sort方法
(2)内置函数sorted()
列表生成式
二维列表
1.二维列表的遍历
2.二维列表的生成
二、元组
#1.使用小括号创建元组
t=( 'hello',[10,20,30], ' python ' , ' world' )
print(t)
#2.使用内置函数tuple()创建元组
t=tuple('helloworld')
print(t)
t=tuple([10,20,30,40])
print(t)
元组是序列中的一种,对序列的操作符、运算符、函数 均可以使用
元组的遍历与访问
t=( 'python ' , ' hello' , 'world ' )
#根据索引访问元组
print(t[0])
t2=t[0:3:2]#元组支持切片操作
print(t2)
#1.使用遍历循环for遍历元组元素
for item in t:
print(item)
#2.用for循环,range()函数,根据索引进行遍历
for i in range(len(t)):
print(i,lst[i])
#3.enumerate()函数
for index,item in enumerate(t):
print(index,'-->',item)#index是序号,不是索引
#手动修改序号从11开始
for index,item in enumerate(t,start=11)
print(index,'-->',item)
元组的生成式
方法一
元组也有生成式,不过它的结果是一个生成器对象,它需要转成一个元组或者列表我们才可以看到内容
方法二
遍历过t不存在元素
元组和列表的区别
三、字典
- 可变数据类型,具有增删改等的操作
- 与列表不同的是,字典中的元素是无序的,所以你第一个添加到字典中的元素并不一定就是在第一位的
- 并且字典中的键要求必须唯一,不能重复;但是值是可以重复的
- 但是如果你写的时候键重复了,那么后面的会覆盖代替前面的
- 要求字典中的键是不可变序列,所以哪些可以作为键呢?整型、字符型、浮点型、元组...都可以,
#1.直接使用{}创建字典
d={10:'cat',20:'dog',30:'pet',20:'zoo'}
print(d) #key相同时,value值进行了覆盖
#2.zip函数
lst1=[10,20,30,40]
lst2=['cat','dog' , 'pet','zoo','car' ]
zipobj=zip(lst1,lst2)
print(zipobj) #<zip object at 0x000001ECD5A24F00>
#print(list(zipobj)) # [(10,'cat'),(20,'dog')(30,'pet'),( 40,'zoo')]
d=dict(zipobj)
print(d)# {10:'cat',20: 'dog', 30: 'pet ',40: 'zoo'
#3.使用参数创建字典
d=dict(cat=10, dog=20)#左侧cat是key ,右侧的是valueprint(d)
字典的取值(访问)和遍历
d={'hello':10,'world':20,'python':30}
#访问字典中的元素
#1.使用d[key]
print(d['hello'])
#2. d.get(key)
print(d.get('hello'))
#二者之间是有区别的,如果key不存在,d[key]报错d . get(key)可以指定默认值
#字典的遍历
#1.使用遍历循环for遍历字典元素
for item in d.items():
print(item)# key=value组成的一个元素
#2.在使用for箭环遍历时,分别获取key和value
for key , value in d.items():
print(key, '--->', value)
字典的相关操作方法
添加就是直接 d.[]=''
字典的生成式
四、集合
- 如果你直接使用花括号创建
s={},那么创建的就是字典而不是集合- 如果你想创建集合:
s=set()用内置函数
#1.直接使用{}创建集合
s={10,20,30,40}
print(s)
#集合只能存储不可变数据类型
#2.使用set()创建集合
s=set()#创建了一个空集合,空集合的布尔值是Falseprint(s)
s=set('helloworld')
print(s)#无序且不重复
集合类型的操作符
集合的相关操作方法
集合的遍历
#1.使用遍历循环for遍历集合元素
for item in s:
print(item)
#2.enumerate()函数
for index,item in enumerate(s)
print(index,'-->',item)
集合的生成式
【几种数据类型区别】
python3.11新特性
data=eval(input('请输入要匹配的数据:'))
match data:
case {'name':'ysj','age':20}:
print('字典')
case [10, 20,30]:
print('列表')
case (10, 20,40):
print("元组')
case _:
print('相当于多重if中的else')
最后这个case_相当于else
实战
实战一:千年虫
lst=[88,89,90,98,00,99]
print('原列表:',lst)
# 1.使用遍历循环for遍历列表元素
for index in range(len(lst)):
if str(lst[index])!='0':
lst[index]='19'+str(lst[index])
else:
lst[index] = '200' + str(lst[index])
print(lst)
# 2.enumerate
for index,value in enumerate(lst):
if str(lst[index])!='0':
lst[index]='19'+str(value)
else:
lst[index] = '200' + str(value)
print(lst)
实战二:模拟京东的购物流程
#首先创建一个空列表,用来存储入库的商品信息
lst=[]
#1.入库
for i in range(5):
goods=input('请输入商品的编号和名称进行商品入库:')
lst.append(goods)
#2输出所有商品信息(遍历)
for item in lst:
print(item)
#3.创建一个空列表,用来存储购物车里面的商品
#当我输入q时结束,不然一直循环,所以选用无限循环while
cart=[]
while True:#意思就是一直去执行
flag=False #代表没有商品的情况
num=input('请输入你要购买的商品编号:')
#4.遍历商品列表用来查询商品是否存在
for item in lst:
if num==item[0:4]:# 切片操作,从商品中切出序号,进行比较
flag=True #代表商品已找到
cart.append(item)#添加入购物车
print('商品已成功添加入购物车')
break #退出的是这个for循环
if not flag and num!='q':#not flag也可以写成flag==False
print('商品不存在')
if num=='q':
break #退出的是while
print('购物车里已选择的商品为:')
cart.reverse()
for item in cart:
print(item)
实战三;火车订票流程
#创建字典用于存储车票信息,使用车次作为key,使用其他信息作为value
dict_ticket={
'G1111':['北京南-天津南','18:06','18:39','00:33'],
'G2222':['北京南-天津南','18:15','18:49','00:34'],
'G3333':['北京南-天津西','18:20','18:53','00:36'],
'G4444':['北京南-天津东','18:40','19:30','00:54']
}
print('车次 出发地-到达站 出发时间 到达时间 历时时长')
#遍历字典中的元素
for key in dict_ticket.keys():
print(key,end='\t')#为什么不换行?因为车次和车次的详情信息在一行显示
#根据key获取值是一个列表
for item in dict_ticket.get(key): #根据key获取值
print(item,end='\t\t')
print() #换行
#输入用户的购票车次
train_number=input('请输入要购买的车次:')
#根据key获取值
info=dict_ticket.get(train_number,'车次不存在')#info是一个列表类型
# 判断车次是否存在
if info!='车次不存在':
person=input('请输入乘车人,如果是多位请用逗号分割:')
s=info[0]+' '+info[1]+' '+'开'
print('您已购买了'+train_number+' '+s+'请'+person+'尽快换取纸质车票。【铁路客服】')
else:
print('对不起,车次不存在')
实战四:手机通讯录
#创建一个空集合
s=set()
#录入5位好友的姓名和手机号
for i in range(1,6):
info=input(f'请输入第{i}位好友的姓名和手机号码:')
#添加到集合中
s.add(info)
#遍历集合
for item in s:
print(item)