Python全系列 教程
3567个小节阅读:5930.4k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
a = [10,20,30,40]
for obj in a: #obj是临时变量名称,随意起
print(obj)
如下代码实现列表元素的复制了吗?
xxxxxxxxxx
list1 = [30,40,50]
list2 = list1
只是将list2也指向了列表对象,也就是说list2和list2持有地址值是相同的,列表对象本身的元素并没有复制。
我们可以通过如下简单方式,实现列表元素内容的复制:
xxxxxxxxxx
list1 = [30,40,50]
list2 = [] + list1 #生成了新列表对象
注:我们后面也会学习copy模块,使用浅复制或深复制实现我们的复制操作。
xxxxxxxxxx
>>> a = [20,10,30,40]
>>> id(a)
46017416
>>> a.sort() #默认是升序排列
>>> a
[10, 20, 30, 40]
>>> a = [10,20,30,40]
>>> a.sort(reverse=True) #降序排列
>>> a
[40, 30, 20, 10]
>>> import random
>>> random.shuffle(a) #打乱顺序
>>> a
[20, 40, 30, 10]
我们也可以通过内置函数sorted()进行排序,这个方法返回新列表,不对原列表做修改。
xxxxxxxxxx
>>> a = [20,10,30,40]
>>> id(a)
46016008
>>> b = sorted(a) #默认升序
>>> b
[10, 20, 30, 40]
>>> id(b)
45907848
>>> c = sorted(a,reverse=True) #降序
>>> c
[40, 30, 20, 10]
通过上面操作,我们可以看出,生成的列表对象b和c都是完全新的列表对象。
内置函数reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。
xxxxxxxxxx
>>> a = [20,10,30,40]
>>> c = reversed(a)
>>> c
<list_reverseiterator object at 0x0000000002BCCEB8>
>>> list(c)
[40, 30, 10, 20]
>>> list(c)
[]
我们打印输出c发现提示是:list_reverseiterator。也就是一个迭代对象。同时,我们使用list(c)进行输出,发现只能使用一次。第一次输出了元素,第二次为空。那是因为迭代对象在第一次时已经遍历结束了,第二次不能再使用。
⚠️关于迭代对象的使用,后续章节会进行详细讲解。
用于返回列表中最大和最小值。
xxxxxxxxxx
>>> a = [3,10,20,15,9]
>>> max(a)
20
>>> min(a)
3
对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。
xxxxxxxxxx
>>> a = [3,10,20,15,9]
>>> sum(a)
57
实时效果反馈
1. 如下代码,说法正确的是:
xxxxxxxxxx
list1 = [30,40,50]
list2 = [] + list1
A list2是一个新的列表对象
B list2和list1是同一个对象
C list2不是一个新对象
D list2是一个空的列表对象
答案
1=>A