列表的循环遍历
1. 使用while循环
为了更有效率的输出列表的每个数据,可以使用循环来完成
namesList = ['xiaoWang','xiaoZhang','xiaoHua'] length = len(namesList) # 获取列表长度 i = 0 while i<length: print(namesList[i]) i+=1
结果:
xiaoWang xiaoZhang xiaoHua
2. 使用for循环
while 循环是一种基本的遍历列表数据的方式,但是最常用也是最简单的方式是使用 for 循环
namesList = ['xiaoWang','xiaoZhang','xiaoHua'] for name in namesList: print(name)
结果:
xiaoWang xiaoZhang xiaoHua
3. 交换2个变量的值
使用中间变量
a = 4 b = 5 c = 0 c = a a = b b = c print(a) print(b)
练习
手动实现冒泡排序(难)
nums = [5, 1, 7, 6, 8, 2, 4, 3] for j in range(0, len(nums) - 1): for i in range(0, len(nums) - 1 - j): if nums[i] > nums[i + 1]: a = nums[i] nums[i] = nums[i+1] nums[i+1] = a print(nums)
有一个列表names,保存了一组姓名names=[‘zhangsan’,‘lisi’,‘chris’,‘jerry’,‘henry’],再让用户输入一个姓名,如果这个姓名在列表里存在,提示用户姓名已存在;如果这个姓名在列表里不存在,就将这个姓名添加到列表里。
1. 列表嵌套
类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套
此处重点掌握怎么操作被嵌套的列表
schoolNames = [ [1, 2, 3], [11, 22, 33], [111, 222, 333] ] schoolNames[1][2] # 获取数字 33 schoolNames[1][2] = 'abc' # 把 33 修改为 'abc' schoolNames[1][2][2] # 获取 'abc' 里的字符c
也就是说,操作嵌套列表,只要把要操作元素的下标当作变量名来使用即可。
2. 应用
一个学校,有3个办公室,现在有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("\n") print("-"*20)
运行结果如下: