列表介绍
列表的循环遍历
列表的常见操作
列表的嵌套
变量A的类型为列表
name = [‘张三’,‘李四’,‘王五’]
列表的元素可以是不同类型的
name = [1,'a']
#打印列表 name = [‘张三’,‘李四’,‘王五’] print(name[0]) print(name[1]) print(name[2])
#运行结果:
zhangsan
lisi
wagwu
列表的循环遍历
1.使用for循环
用循环来完成,可以可更加有效率的输出列表的每一个数据
namelist = ['zhangsan','lisi','wangwu'] for name in namelist: print(name)
#运行结果
zhangsan
lisi
wangwu
2.使用while循环
namelist = ['zhangsan','lisi','wangwu'] length = len(namelist) i = 0 while i <length: print(namelist[i]) i+= 1 #运行结果 zhangsan lisi wangwu
列表的相关操作
列表存放的数据是可以进行修改的,比如:“增”“删”“改”
1.添加元素(“增” apppend,extend,insert)
appent
通过append可以向列表添加元素
#定义变量a,默认有三个元素
a = ['zhangsan','lisi','wangwu'] print("-------添加之前,列表a的数据--------") for tempname in a: print(tempname) #提示、并添加元素 tpme = input("请输入要添加的学生姓名:") a.append(temp) print("-------添加之后,列表a的数据---------") for tempname in a: print(tempname) #运行结果: ---------添加之前,列表a的数据------ zhangsan lisi wangwu 请输入要添加的学生姓名:
extend
通过extend可以将另一个集合中的元素逐一添加到列表中
> a=[1,2] > b=[3,4] >a.append(b) >a [1,2,[3,4]] >a.extend(b) >a [1,2,[3,4],3,4]
insert
作用:insert(index,object)在指定位置index前插入元素object
>a = [0,1,2] >a.insert(1,3) >a [0,3,1,2]
2.修改元素(“改”)
作用:修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
#定义变量a,默认有三个元素 a = ['zhangsan','lisi','wangwu'] print("-----修改之前,列表a的数据-----") for tempname in a: print(tempname) #修改元素 a[1] = 'sunliu' print("-------修改之后列表a的数据--------") for tempname in a: print(tempname) 运行结果: -------修改之前,列表a的数据--------- zhangsan lisi wangwu -------修改之后,列表a的数据--------- zhangsan sunliu wangwu
3.查找元素(“查” in ,not in ,index, count)
作用:所谓的查找,就是看看指定的元素是否存在
in , not in
python中查找的常用方法为:
*in(存在),如果存在那么结果为true,否则为false
*not in(不存在),如果不存在那么结果为true,否则 false
#待查找的列表 namelist = ['zhangsan','lisi',''wangwu] #获取用户查找的名字 findname = input (“请输入要查找的名字:”) #查找是否存在 if findname in namelist: print(“在字典找到了相同的名字”) else: print(“没有找到”) #运行结果 结果1:(找到) 结果2:(没有找到)
说明:
in的方法只要会了,那么not in 也是同样的用法,只不过not in 判断的是不存在
index, count
index 和count与字符串中的用法相同
>a = ['a','b','c','a','b'] >a.index('a',1,3) #注意是左闭右开区间 Traceback(most recent call last): File "<stdin>",line 1,in<module> ValueEroor: 'a' is not in list >a.index('a',1,4) 3 >a.count('b') 2 >a.count('d') 0
4.删除元素(‘删’ del,pop,remove)
作用:类比显示生活中,如果某位同学调班了,那么应该把这个调班的同学的姓名删除;在开发中会经常用到删除这种功能;
列表元素的常用删除方法是:
*del: 根据下标进行删除
*pop:删除最后一个元素
*remove:根据元素的值进行删除
del举例:
namelist = ['zhangsan', 'lisi' , 'wangwu'] print('-------删除之前--------') for tempname in namelist: print(tempname) del namelist[2] print('-------删除之后--------') for tempname in namelist: print(tempname) #运行结果 -------删除之前--------- zhangsan lisi wangwu -------删除之后---------- zhangsan lisi
pop案例:
namelist = ['zhangsan', 'lisi' , 'wangwu'] print('-------删除之前--------') for tempname in namelist: print(tempname) namelist.pop() print('-------删除之后--------') for tempname in namelist: print(tempname)
remove案例:
namelist = ['zhangsan', 'lisi' , 'wangwu'] print('-------删除之前--------') for tempname in namelist: print(tempname) namelist.remove('lisi') print('-------删除之后--------') for tempname in namelist: print(tempname) #运行结果 -------删除之前--------- zhangsan lisi wangwu -------删除之后---------- zhangsan wangwu
5.排序(sort,reverse)
作用:sort方法是将list按照特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小
reverse方法是将list逆置
>a=[1,4,2,3] >a [1,4,2,3] >a.reverse() >a [3,2,4,1] >a.sort() >a [1,2,3,4] >a.sort(reverse=True) >a [4,3,2,1]
列表的嵌套
1.列表嵌套
作用:类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套
schoolnames = [ ['北京大学',‘清华大学’], [‘南开大学’,‘天津大学’,‘南京示范大学’], ['山东大学',‘中国体育大学’] ]
2.应用
案例:一个学校,由3个办公室,现在有8为老师等待工位的分配,请编写程序,晚上随机的分配
#encoding=utf-8 import random #定义一个列表来保存3个办公室 offices = [[],[],[]] #定义一个列表用来存储8位老师的名字 names = ['a','b','c','d','e','f','g','h'] i = 0 for name in names: index = random.randint(0,2) offices[index].append(name) i = 1 for tempnames in offices: print('办公室%d的人数为:%d' %(i,len(tempnames))) i += 1 for name in tempnames: print("%s" %name,end='') print(" ") print("-"*20) #运行结果: 办公室1的人数为:4 abcd ---------------------- 办公室2的人数为:3 dgh ---------------------- 办公室3的人数为:1 f