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

 

posted @ 2020-04-20 00:00  君,子觞  阅读(136)  评论(0)    收藏  举报