列表:
定义:由一系列变量组成可变序列容器。
属性:
1、填加元素,列表.append()方法,在末尾追加。
用法:列表.append(内容)
列表.insert()插入方法。
用法:列表.insert(位置,内容)
2、删除元素
根据元素删除,列表.remove(内容)
椐据索引删除,del 列表变量[索引值]
列表.reverse()反向列表元素
注:通过切片删除或追加元素不会产生新列表
如果通过切片取出元素就会生成新列表
3、复制列表
list.copy()
'''
4、#创建列表
#空列表
list_01=[]
list_01=list()
#有内容的列表
list_02=["我是中国人",100,True]
list_02=list("我是中国人")#list()赋值()里面是另一个容器。字符串为容器。
5、#获取元素:
#1、索引
print(list_02[3])
#2、切片
print(list_02[0:3])
#3、填加元素,append属性,在末尾追加。
list_02.append("天津")
print(list_02)
#4、insert插入属性。insert(位置,内容)
list_02.insert(2,"宁河")#在第2个位置后面追加
print(list_02)
#4、删除元素
#根据元素删除,remove(内容)
list_02.remove("宁河")
#根据位置删除
del list_02[1]#删除第2个元素。
print(list_02)
#可以用切片删除几个元素。
del list_02[0:3]#删除前三个元素
print(list_02)
#5、定位元素,可以增、删、改、查
list03=list("天津市宁河区史家庄小学")
#切片
del list03[0:3]#删除
print(list03)
list03[0:3]=["东","棘","坨"]#修改元素
print(list03)
list03[0:3]=[1,2,3,4,5,6]#元素多于切片数自动追加。
print(list03)
list03[0:6]=[]#参数为空等同于删除。
print(list03)
6、#便历列表
list04=list("天津市宁河区东棘坨镇史家庄小学")
for stra in list04:
print(stra)
# #for stra in list04[::-1]:#不建议使用,此功能是重新建立新列表
# print(stra)
# #for stra in list04[2:5]:#不建议使用,此功能是重新建立新列表
# print(stra)
list05=list("学习好劳动好")
for index in range(1,len(list05)):#正序取值
print(list05[index])
for index in range(-1,-len(list05),-1):#倒序取值
print(list05[index])
#列表元素返输出可以先反向列表元素
List05.lreverse() #反向列表元素
for index in range(len(list05)):#倒序取值
print(list05[index])
7、#练习:
# 控制台中输入学生成绩,当输入入为100时插到第一个位置,当输入为空时打印学生成绩,并打印最大值,最小值和平均数。
list_socer=[]
while True:
chengji = input("输入成绩:")
if chengji=="":
break
fchji = float(chengji)
if fchji==100:
list_socer.insert(0,100)
else:
list_socer.append(fchji)
for iemt in range(len(list_socer)):
print(list_socer[iemt])
print("\n"*2+"最大数是:"+str(max(list_socer)))
print("最小数是:%0.2f"%(min(list_socer)))
print("平均数是:%0.2f"%(sum(list_socer)/len(list_socer)))
8、#练习:
#输入学生姓名当此学生存在,则不在加入列表中,当输入为空是退出并打印。
liststr=[]
while True:
ximi=input("输入学生姓名:")
if ximi=="":
break
if ximi in liststr:
print("姓名已存在")
continue
else:
liststr.append(ximi)
liststr.reverse()#反向列表
for imte in range(len(liststr)):
print(liststr[imte])
'''
浅拷贝:只复制一层变量,不会复制深层变量的绑定。
深拷贝:复制整个依懒的变量。
'''
#浅考贝:原列表发生变化会改变拷贝出来的列表。
list01=[100,[200,600]]
list02=list01[:]#浅拷贝
print(list02)
list02=list01.copy()#浅拷贝
list01[1][0]=900#第二个元素的第一个值,(0是第一个,1是第二个)
print(list02[1][0])
#深拷贝(浪费内存)原来列表发生变化不会影响现在的列表,它们是完全隔离的。
import copy
list01=[100,[200,600]]
list02=copy.deepcopy(list01)#深拷贝
list01[1][0]=900#不会影响拷贝出来的列表值。
print(list02[1][0])
输出为:
原列表:[100, [200, 600]]
浅拷贝结果:900
深拷贝结果:200
#练习:求最大值
list00=[]
while True:
incom=input("输入整数:")
if incom=="":
break
list00.append(int(incom))
number=list00[0]
for imte in range(1,len(list00)):
if number <list00[imte]:
number=list00[imte]
print(number)
#练习:输入列表,如果大于10,则删除。
list002=[]
while True:
shuru=input("请输入整数:")
if shuru=="":
break
list002.append(int(shuru))
# for imt in range(len(list002)-1):
# if list002[imt]>=10:
# del list002[imt]
for imt in list002:
if imt>=10:
list002.remove(imt)
print(list002)
#练习:用单价和数量求总价。
list1=[1.2,3.6,4.5,45]
list2=[12,21,36,45]
list002=[list1,list2]
print(list002)
for imt in range(4):
print(list002[0][imt]*list002[1][imt])