Python-列表
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 print("----列表学习----") 4 # 列表一次性可以存储多个数据,格式:列表名=[数据1,数据2,数据3.....] 5 name_list = ['Tom', 'Lily', 'Rose', 'Jun', 'Lily'] 6 print(name_list[0], name_list[3], name_list) # 列表的下标(内存从0开始对数据开始编号)。 7 8 print('对列表的查找操作') 9 # index(数据,开始位置下标,结束位置下标)查找数据的下标,存在返回下标,不存在则返回报错 10 print(name_list.index('Jun'), name_list.index('Lily', 2, 5)) # 注意2-4会报错 11 # 统计出现的次数count(),不存在则为0 12 print(name_list.count('Tom'), name_list.count('Lily')) 13 # 统计列表中的个数len() 14 print(len(name_list)) 15 # in判断指定数据是否在列表中,在返回True,否则False 16 print('Tom' in name_list, 'Toms' in name_list) 17 # not in判断不存在则返回True,否则False 18 print('Tom' not in name_list, 'Toms' not in name_list) 19 20 print('对列表的增加操作') 21 name_list1 = ['Tom', 'Lily', 'ROSE'] 22 # append()在列表结尾追加数据 23 name_list1.append('Tom1') 24 print(name_list1) # 说明列表是可变数据类型 25 name_list1.append([11, 22]) 26 print(name_list1) # 追加数据是一个序列时,则整个追加到列表 27 # extend() 在列表结尾追加数据 28 name_list2 = ['Tom', 'Lily', 'ROSE'] 29 name_list2.extend('JUN') 30 print(name_list2) # 会将字符串拆开追加到结尾 31 name_list2.extend(['name1', 'name2']) 32 print(name_list2) # 将序列拆开追加到结尾 33 # insert(位置下标,数据)指定位置增加数据 34 name_list3 = ['Tom', 'Lily', 'ROSE'] 35 name_list3.insert(2, 'Jun') 36 print(name_list3) 37 38 print('对列表的删除操作') 39 # del 快速删除列表 40 name_list4 = ['Tom', 'Lily', 'ROSE'] 41 del name_list4 42 # print(name_list4) # 报错找不到列表,或者打印为空,不同的版本造成 43 name_list5 = ['Tom', 'Lily', 'ROSE'] 44 del name_list5[0] 45 print(name_list5) # 删除指定位置数据 46 # pop()删除指定下标数据,不指定下标,默认删除最后一个,返回被删除的数据 47 name_list6 = ['Tom', 'Lily', 'ROSE'] 48 print(name_list6.pop(), name_list6) 49 print(name_list6.pop(1), name_list6) 50 # remove(数据),删除指定数据 51 name_list7 = ['Tom', 'Lily', 'ROSE', 'Lily'] 52 name_list7.remove('Lily') 53 print(name_list7) # 如果有多个相同数据,默认删除第一个 54 # clear() 清空列表 55 name_list7.clear() 56 print(name_list7) # 清空列表数据 57 58 # 修改指定下标数据 59 name_list8 = [1, 2, 3, 4] 60 name_list8[0] = 5 61 print(name_list8) 62 # reverse()逆序数据 63 name_list8.reverse() 64 print(name_list8) 65 # sort(key=None, resverse=False)排序.key是用在字典里对数据排序,这里不用,默认resverse=False升序,True是降序 66 name_list9 = [1, 3, 2, 4, 7, 8, 6] 67 name_list9.sort() 68 print(name_list9) # reverse=False可以默认不写 69 name_list9.sort(reverse=True) 70 print(name_list9) # reverse=True为降序 71 72 # copy()列表复制 73 name_list10 = ['Tom', 'Lily', 'ROSE'] 74 name_list11 = name_list10.copy() 75 print(name_list11, name_list10) 76 77 # 列表的循环遍历 78 i = 0 79 while i < len(name_list11): 80 print(name_list11[i]) 81 i += 1 82 print("for循环遍历序列,一般优选for循环") 83 for i in name_list11: 84 print(i) 85 86 # 列表嵌套 87 name_list12 = [[1, 2, 3], ['lisan', 'lisi', 'liwu'], ['aa', 'bb', 'cc']] 88 print(name_list12[1][1]) # 嵌套列表打印指定数据 89 90 # 综合应用,8个老师随机分配到3个办公室 91 """ 92 步骤: 93 1.准备数据 94 1.1 8位老师 -- 列表 95 1.2 3个办公室 --列表嵌套 96 2.分配到办公室 97 2.1随机分配 98 2.2办公室列表追加老师名字 99 3.验证是否分配成功 100 3.1打印每个办公室的人数和对应的老师名字 101 """ 102 import random 103 teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] 104 offices = [[], [], []] 105 for name in teachers: 106 num = random.randint(0, 2) 107 print(num) 108 offices[num].append(name) 109 i = 1 110 for office in offices: 111 print(f'办公室{i}的人数是:{len(office)}') # 打印办公室人数 112 for name in office: 113 print(name) # 打印各办公室老师名字 114 i += 1
运行结果:
1 ----列表学习---- 2 Tom Jun ['Tom', 'Lily', 'Rose', 'Jun', 'Lily'] 3 对列表的查找操作 4 3 4 5 1 2 6 5 7 True False 8 False True 9 对列表的增加操作 10 ['Tom', 'Lily', 'ROSE', 'Tom1'] 11 ['Tom', 'Lily', 'ROSE', 'Tom1', [11, 22]] 12 ['Tom', 'Lily', 'ROSE', 'J', 'U', 'N'] 13 ['Tom', 'Lily', 'ROSE', 'J', 'U', 'N', 'name1', 'name2'] 14 ['Tom', 'Lily', 'Jun', 'ROSE'] 15 对列表的删除操作 16 ['Lily', 'ROSE'] 17 ROSE ['Tom', 'Lily'] 18 Lily ['Tom'] 19 ['Tom', 'ROSE', 'Lily'] 20 [] 21 [5, 2, 3, 4] 22 [4, 3, 2, 5] 23 [1, 2, 3, 4, 6, 7, 8] 24 [8, 7, 6, 4, 3, 2, 1] 25 ['Tom', 'Lily', 'ROSE'] ['Tom', 'Lily', 'ROSE'] 26 Tom 27 Lily 28 ROSE 29 for循环遍历序列,一般优选for循环 30 Tom 31 Lily 32 ROSE 33 lisi 34 办公室1的人数是:2 35 A 36 F 37 办公室2的人数是:2 38 C 39 G 40 办公室3的人数是:4 41 B 42 D 43 E 44 H

浙公网安备 33010602011771号