Python知识点4:列表
b站学习:https://www.bilibili.com/video/BV12E411A7ZQ
注意:三引号只是把代码注释掉了
一、列表
列表的定义:
#-*- coding = utf-8 -*-
#@Time : 2020/9/3 18:50
#@Author : Vivian
#@File : demo2.py
#@Sofeware : PyCharm
'''
namelist1=[] #定义一个空的列表
namelist2=["小张","小李","小王"]
print(namelist2[0])
print(namelist2[1])
print(namelist2[2])
#列表中可以存储混合类型
namelist3=[1,"测试"]
print(type(namelist3[0]))
print(type(namelist3[1]))
#用for遍历列表
for name in namelist2:
print(name)
#用while遍历列表
length=len(namelist2)
i=0
while i<length:
print(namelist2[i])
i+=1
'''
二、常用操作
#增删改查
1.增
#增删改查
'''
#增:[append] 在末尾追加一个元素
namelist=["小张","小李","小王"]
print("----增加前列表数据")
for name in namelist:
print(name)
nametemp=input("请输入添加的学生姓名:")
namelist.append(nametemp)
print("----增加后列表数据")
for name in namelist:
print(name)
'''
'''
#增:[extend]
a=[1,2]
b=[3,4]
a.append(b) #将b整个加入a
print(a)
a.extend(b) #将b列表中的每个元素加入a中
print(a)
'''
'''
#增:[insert] 指定下标位置插入元素
a=[0,1,2]
a.insert(1,3) #第一个变量表示下标,第二个变量表示变量
print(a)
'''
2.删
#删:[del] [pop] [remove]
movieName=["澳门风云","你的名字","大鱼海棠","变形金刚","花木兰"]
print("----删除前列表数据")
for name in movieName:
print(name)
del movieName[2] #在指定位置删除一个元素
movieName.pop() #删除最后一个元素
movieName.remove("你的名字") #删掉找到的第一个
print("----删除后列表数据")
for name in movieName:
print(name)
3.改
#改:
namelist=["小张","小李","小王"]
print("----修改前列表数据")
for name in namelist:
print(name)
namelist[1]="小红" #直接指定下标修改内容
print("----修改后列表数据")
for name in namelist:
print(name)
4.查
#查:[in,not in]
namelist=["小张","小李","小王"]
findName=input("请输入你要查找的学生名字:")
if findName in namelist:
print("找到了")
else:
print("没找到")
#其他应用
mylist=["a","b","c","a","b"]
print(mylist.index("a",1,4)) #可以查找指定下标范围的元素,并返回对应下标
#print(mylist.index("a",1,3)) #范围左闭右开 这里会报错(找不到)
print(mylist.count("b")) #统计某个元素的次数
列表的反转和排序
#列表反转和排序
a=[1,2,3,4]
print(a)
a.reverse() #将列表所有元素反转(a改变了)
print(a)
a.sort() #升序
print(a)
a.sort(reverse=True) #降序
print(a)
列表的嵌套
#列表的嵌套
schoolNames=[["北京大学","清华大学"],["中山大学","复旦大学"],["华南理工大学"]]
print(schoolNames[0])
print(schoolNames[0][0])
小练习:
#练习:把a-h老师分配到1-3个office并打印
import random
offices=[[],[],[]]
names=["a","b","c","d","e","f","g","h"]
for name in names:
index=random.randint(0,2)
offices[index].append(name)
print(offices)
i=1
for office in offices:
print("办公室%d的人数有%d人"%(i,len(office)))
i+=1
for name in office:
print(name,end="\t")
print("\n")
课后作业:
#课后作业
products=[["iphone",6888],["MacPro",14800],["小米6",2499],["Coffee",31],["book",60],["Nike",699]]
print("------ 商品列表 ------") #打印商品列表
for i in range(6):
print(i, end="\t")
print(products[i][0], end="\t")
print(products[i][1])
carts=[] #建立一个空的购物车
while True:
numberChar=input("请输入你想购买的商品编号,输入q进行买单")
if numberChar=="q": #若输入为q则跳出循环
break
number=int(numberChar) #输入的字符串转换成数字
carts.append(products[number]) #往carts中添加商品数据
print("现在购物车有:",end="\n") #打印目前的购物车信息
print(carts)
i=0
total=0
for cart in carts: #计算总价格
total+=cart[1]
i+=1
print("您要支付%d元"%total) #打印总价格