前言
列表是可变序列,通常用于存放同类项目的集合。
(文末送读者福利)
列表的特点:
列表是一个有序序列。
列表可以包含任意类型的对象。
列表是可变的。可以添加、删除和赋值。
列表存储的是对象的引用。
每个列表成员存储的是对象的引用,而不是对象本身。
5-1-1创建列表
例5-1-1 运行下面的代码 ,分析产生的结果。
【参考代码】
01 ‘’’
02 列表:有非常重要的地位。(list)
03 [项,项…]
04 ‘’’
05 list1=[‘zhang san’,‘li si’,‘wang wu’]
06 print(list1)
16 #直接创建列表
17 list0=[]#空列表
18 print(type(list0))#类型
19 list2=[1,2,3,4,5]#数值型列表
20 list3=[‘张三’,14,‘8年级’,‘34班’]
21 print(list2)
22 print(list3)
23 #使用rang()和list()创建数值型列表。
24 lista=list(range(10))#range()不包括结束数值
25 print(lista)
26 listb=list(range(0,11,2))
27 print(listb)
28 #list()来创建列表
29 stra=“abcdefg”
30 listc=list(stra)
31 print(listc)
32 #通过列表推导式来创建列表
33 ‘’’
34 列表推导式:
35 1、最外面[]
36 2、表达式 for子句 if子句
37 3、for子句产生数值—if子句----(满足条件)—表达式(产生所需要的结果)
38 ‘’’
39 listd=[i**2 for i in range(1,11)]
40 print(listd)
41 liste=[i**2 for i in range(1,11) if i%2==0]
42 print(liste)
43 listf=[(x,y) for x in [1,2,3] for y in [3,1,4] if x!=y]
44 print(listf)
【运行结果】
[‘zhang san’, ‘li si’, ‘wang wu’]
<class ‘list’>
[1, 2, 3, 4, 5]
[‘张三’, 14, ‘8年级’, ‘34班’]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8, 10]
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[4, 16, 36, 64, 100]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
5-1-2通用序列操作
例5-1-2 运行下面的代码,分析产生的结果
【参考代码】
01 ‘’’
02 通用的序列操作
03 ‘’’
04 lista=[‘张三’,‘李四’,‘王五’]
05 #判断某些项是否存在列表中(x in s 或者 x not in s)
06 stra=‘张三’
07 print(stra in lista)
08 stra=‘刘柳’
09 print(stra not in lista)
10 #多个列表形成一个别表(+)
11 list1=[18,22,19]
12 list2=lista+list1
13 print(list2)
14 #将一个列表重复多次,形成新的列表(*)
15 list3=list13#3list1
16 print(list3)
17 list4=list1+list1+list1
18 print(list4)
19 #索引(下标)list[下标]
20 ‘’’
21 lista=[‘张三’,‘李四’,‘王五’,‘刘柳’]
22 从左向右 ----0 ---- 1 ---- 2 ---- 3
23 从右向左 -----4 -----3 -----2 -----1
24 ‘’’
25 lista=[‘张三’,‘李四’,‘王五’,‘刘柳’]
26 print(lista[0])
27 print(lista[-1])
28 #切片list[开始:结束:步长]
29 print(lista[:])#取所有
30 print(lista[::-1])#逆序输出
31 print(lista[:3])#前几个
32 print(lista[-3:])#后几个
33 print(lista[1:3])
34 print(lista[0:3:2])
35 #列表长度(len())
36 print(len(lista))
37 listb=[1,2,3,[4,5,6,[7,8,9]]]
38 print(listb)
39 print(len(listb))
40 #最大(max) 最小(min)
41 listc=[1,3,4,5,6,23,88,2]
42 lista=[‘张三’,‘李四’,‘王五’,‘刘柳’]
43 print(max(listc))
44 print(min(listc))
45 print(max(lista))
46 print(min(lista))
47 #子项第一次出现的位置,返回下标(list.index(子项))
48 lista=lista*3
49 print(lista)
50 strb=‘王五’
51 print(lista.index(strb))
52 print(lista.index(strb,5,9))
53 #统计重复 list.count(子项)
54 print(lista.count(‘张三’))
55 print(lista.count(strb))
【运行结果】
True
True
[‘张三’, ‘李四’, ‘王五’, 18, 22, 19]
[18, 22, 19, 18, 22, 19, 18, 22, 19]
[18, 22, 19, 18, 22, 19, 18, 22, 19]
张三
刘柳
[‘张三’, ‘李四’, ‘王五’, ‘刘柳’]
[‘刘柳’, ‘王五’, ‘李四’, ‘张三’]
[‘张三’, ‘李四’, ‘王五’]
[‘李四’, ‘王五’, ‘刘柳’]
[‘李四’, ‘王五’]
[‘张三’, ‘王五’]
4
[1, 2, 3, [4, 5, 6, [7, 8, 9]]]
4
88
1
王五
刘柳
[‘张三’, ‘李四’, ‘王五’, ‘刘柳’, ‘张三’, ‘李四’, ‘王五’, ‘刘柳’, ‘张三’, ‘李四’, ‘王五’, ‘刘柳’]
2
6
3
3
5-1-3可变序列的操作
例5-1-3 运行下面的代码,分析产生的结果
【参考代码】
01 ‘’’
02 1-可变序列的操作
03 s:可变的序列(list)
04 t:可迭代的对象。可迭代:简单的来说可以使用for循环。(list)
05 ‘’’
06 lista=[11,22,33,‘aa’,‘bb’]
07 print(lista)
08 #替换某个元素 s[i]=x
09 #i是我们的下标(索引)从左到右 从0开始
10 lista[1]=“cc”
11 print(lista)
12 lista=[11,22,33,‘aa’,‘bb’]
13 testa=[‘aaa’,‘bbb’,‘ccc’]
14 #testa的内容替换了lista中的切片
15 #s[i:j]=t
16 print(lista)
17 lista[1:2]=testa
18 print(lista)
19 #删除内容 del s[i:j]
20 del lista[1:3]
21 print(lista)
22 #元素的替换s[i:j:t]=t
23 lista=[11,22,33,‘aa’,‘bb’]
24 testa=[‘aaa’,‘bbb’,‘ccc’]
25 print(lista)
26 lista[0:5:2]=testa#下标 0(11) 2(33) 4(bb)
27 print(lista)
28 #删除 del s[i:j:k]
29 del lista[0:5:2]
30 print(lista)
31 #添加内容s.append(x) 位置为最后面
32 lista.append(“zzz”)
33 print(lista)
34 #s.clera
35 lista.clear()
36 print(lista)
37 ‘’’
38 2-可变序列操作
39 ‘’’
40 print(“2------------------------”)
41 lista=[11,22,33,‘aa’,‘bb’]
42 testa=[‘aaa’,‘bbb’,‘ccc’]
43 listb=lista
44 print(lista)
45 print(listb)
46 #拷贝操作(浅拷贝)s.copy()
47 listc=lista.copy()
48 print(listc)
49 print(lista is listb,lista is listc)
50 #内容扩展 s.extent(t) s+t s[s的长度:s的长度]=t
51 lista.extend(testa)
52 print(lista)
53 print(listb)#=
54 print(listc)#s.copy()
55 lista=[11,22,33,‘aa’,‘bb’]
56 print(lista+testa)
57 print(“***”,lista)
58 lista[len(lista):len(lista)]=testa
59 print(lista)
60 #重复内容s*=n
61 print(testa*2)
62 print(testa)
63 testa*=2
64 print(testa)
65 #插入操作s.insert(i,x)
66 lista=[11,22,33,‘aa’,‘bb’]
67 lista.insert(1,“cc”)#下标(索引)
68 print(lista)
69 lista.insert(1,testa)#将整体插入到位置
70 print(lista)
71 lista=[11,22,33,‘aa’,‘bb’]
72 testa=[‘aaa’,‘bbb’,‘ccc’]
73 print(“–”,lista)
74 lista[1:2]=testa#内容替换切片位置
75 print(lista)
76 #直接删除最后的元素pop() pop(i)删除下标为i的项(元素)
77 lista=[11,22,33,‘aa’,‘bb’]
78 lista.pop()
79 print(lista)
80 lista.pop(1)
81 print(“***”,lista)
82 lista.pop()
83 print(lista)
84 #直接删除具体内容
85 lista=[11,22,33,‘aa’,‘bb’]
86 lista.remove(22)
87 print(lista)
88 lista.remove(“aa”)
89 print(lista)
90 #倒序(逆序)
91 lista=[11,22,33,‘aa’,‘bb’]
92 lista.reverse()
93 print(lista)
94 lista=[11,22,33,‘aa’,‘bb’]
95 listb=lista[::-1]
96 print(listb)
【运行效果】
[11, 22, 33, ‘aa’, ‘bb’]
[11, ‘cc’, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’, ‘bb’]
[11, ‘aaa’, ‘bbb’, ‘ccc’, 33, ‘aa’, ‘bb’]
[11, ‘ccc’, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’, ‘bb’]
[‘aaa’, 22, ‘bbb’, ‘aa’, ‘ccc’]
[22, ‘aa’]
[22, ‘aa’, ‘zzz’]
[]
2------------------------
[11, 22, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’, ‘bb’]
True False
[11, 22, 33, ‘aa’, ‘bb’, ‘aaa’, ‘bbb’, ‘ccc’]
[11, 22, 33, ‘aa’, ‘bb’, ‘aaa’, ‘bbb’, ‘ccc’]
[11, 22, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’, ‘bb’, ‘aaa’, ‘bbb’, ‘ccc’]
*** [11, 22, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’, ‘bb’, ‘aaa’, ‘bbb’, ‘ccc’]
[‘aaa’, ‘bbb’, ‘ccc’, ‘aaa’, ‘bbb’, ‘ccc’]
[‘aaa’, ‘bbb’, ‘ccc’]
[‘aaa’, ‘bbb’, ‘ccc’, ‘aaa’, ‘bbb’, ‘ccc’]
[11, ‘cc’, 22, 33, ‘aa’, ‘bb’]
[11, [‘aaa’, ‘bbb’, ‘ccc’, ‘aaa’, ‘bbb’, ‘ccc’], ‘cc’, 22, 33, ‘aa’, ‘bb’]
– [11, 22, 33, ‘aa’, ‘bb’]
[11, ‘aaa’, ‘bbb’, ‘ccc’, 33, ‘aa’, ‘bb’]
[11, 22, 33, ‘aa’]
*** [11, 33, ‘aa’]
[11, 33]
[11, 33, ‘aa’, ‘bb’]
[11, 33, ‘bb’]
[‘bb’, ‘aa’, 33, 22, 11]
[‘bb’, ‘aa’, 33, 22, 11]
读者福利:知道你对Python感兴趣,便准备了这套python学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉100道Python练习题👈
检查学习结果。
👉面试刷题👈
资料领取
上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取
好文推荐
了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835
了解python能做什么:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603