列表:高级数组
概念:
存储多个数据(多个数据可以是任意类型)
定义形式:
scores=[33,55,88,11,99]
names=['zs','ls','ww']
names=['zs','ls','ww'] # 最后一个学生名字 print(names[-1]) print(names[2]) print(names[len(names)-1]) # IndexError: list index out of range # print(names[3]) # 遍历列表中的所有元素 # while i=0 while i<len(names): print('names[%d]=%s'%(i,names[i])) i+=1 # for for name in names: print(name) for i in range(len(names)): print('names[%d]=%s'%(i,names[i]))
需求:
加入购物车
从购物车删除
查询
修改
1、增
(1) Add
(2) Append
(3) Insert
(4) extend
2、删除
(1) Remove
(2) Del
(3) Pop
(4) Clear
3、查询
(1) Index
(2) Count
(3) In
(4) Not in
相关代码
names=[] # 新增 names.append('zs') names.append('ls') print(names) names.insert(0,'ww') print(names) names2=['mazi','tianqi'] # names.append(names2) # ['ww', 'zs', 'ls', ['mazi', 'tianqi']] # print(names) names.extend(names2) # ['ww', 'zs', 'ls', 'mazi', 'tianqi'] print(names) # 删除 # 删除mazi names.remove('mazi') print(names) # 删除角标为0的元素 names.pop(0) print(names) # 清空names列表 # names.clear() # print(names) # 将这个列表数据清空,同时清除掉栈内的地址引用 # del names # NameError: name 'names' is not defined # print(names) # 查询 # list中没有的元素:ValueError: 'll' is not in list # print(names.index('ll')) print(names.index('ls')) print(names.count('ls')) # 没有的元素返回0 print(names.count('ll')) print('ll' not in names) print('ls' in names) # 修改 if 'zs' in names: index=names.index('zs') names[index]='zsf' else: print('zs is not exists') print(names)
列表中元素排序
Sort()
按照自然顺序(从小到大)进行排序
对源数据直接进行排序,不会生成新的备份
list1=[22,66,99,55,11,77] # [11, 22, 55, 66, 77, 99] # list2 = list1.sort() # [99, 77, 66, 55, 22, 11] list2 = list1.sort(reverse=True) print(list1) # None print(list2)
列表的嵌套使用
# list2=[[1,2,3],[4,5],[6,7,8,9]] list2=[[1,2,3],4,5,[6,7,8,9]] for x in list2: if(type(x) == list): for y in x: print(y) else: print(x)
嵌套列表在内存中的存放结构
练习:
存储学生信息:
Students=[[],[].[]]
项目:学生管理系统v1.0
欢迎光临学生管理系统v1.0
1、添加学生
2、查找学生
3、展示所有
4、删除学生
5、修改学生
6、退出系统
students=[] while True: print("欢迎光临学生管理系统v1.0:") print("1、添加学生") print("2、查找学生") print("3、展示所有") print("4、删除学生") print("5、修改学生") print("6、退出系统") choose=input("请选择1-6:") if choose=='1': # 添加学生逻辑 name=input("学生姓名") score=input("学生分数") student=[name,score] students.append(student) print("添加成功") elif choose=='2': pass elif choose=='3': print("所有学生信息如下",end=":") print(students) elif choose=='4': pass elif choose=='5': # 修改逻辑 name=input('请输入你要修改的学生的姓名:\n') index=-1 for i in range(len(students)): if name in students[i]: index=i break if index==-1: print('对不起,没有你要修改的学生信息') else: new_name=input('请输入新的名字') students[index][0]=new_name new_score=int(input("请输入修改后的分数")) students[index][1]=new_score print("修改成功") elif choose=='6': print("退出系统,欢迎再次使用") break
表示元组:(元素1,元素2,......)
不可变:存储的元素的值,不可修改,不可删除
其方法跟列表list中的方法完全一致
额外要注意的是元组与列表之间的相互转换
tuple1=('学生1',99) # <class 'tuple'> print(type(tuple1)) # 访问索引值对应的元素 print(tuple1[0]) print(tuple1[-1]) print(tuple1[len(tuple1)-1]) # TypeError: 'tuple' object doesn't support item deletion # del tuple1[0] # TypeError: 'tuple' object does not support item assignment # tuple1[1]=11 print(tuple1.index(99)) print(tuple1.count(99)) print(99 in tuple1) print(99 not in tuple1) # 将元组转换为列表(tuple-->list) # 通过下面代码间接将元组中的元素值给改变了 list1=list(tuple1) print(list1) list1[1]=100 tuple1=tuple(list1) print(tuple1)
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有