python列表

前言

列表是可变序列,通常用于存放同类项目的集合。

(文末送读者福利)

列表的特点:

列表是一个有序序列。

列表可以包含任意类型的对象。

列表是可变的。可以添加、删除和赋值。

列表存储的是对象的引用。

每个列表成员存储的是对象的引用,而不是对象本身。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值