Python(三)操作列表

一、遍历整个列表

如果需要对列表中的每个元素都执行相同的操作,可使用Python中的for循环。下面使用for循环打印一个名单中的所有名字:

python 复制代码
peoples=['Alice','David','Bob','Cindy']
for people in peoples:
    print(people)

输出就是列表中所有的名字:

1、深入研究循环

循环很重要,因为它是让计算机自动完成重复工作的常见方式之一。刚开始使用循环时请牢记,不管列表包含多少个元素,每个元素都将被执行循环指定的步骤。如果列表包含100万个元素,Python就将重复执行指定的步骤100万次,而且通常速度非常快。

在编写for循环时,可以给将依次与列表中的每个值相关联的临时变量指定任意名称。然而,选择描述单个列表元素的有意义的名称大有裨益。使用单数和复数形式的名称,可帮助你判断代码段处理的是单个列表元素还是整个列表。

python 复制代码
for cat in cats:
for dog in dogs:
for items in items:

2、在for循环中执行更多的操作

在for循环中,想包含多少行代码都可以。

python 复制代码
peoples=['Alice','David','Bob','Cindy']
for people in peoples:
    print("Hello,",f"{people}")
    print("Nice to meet you")

3、在for循环结束后执行一些操作

在for循环后面,没有缩进的代码都只执行一次,不会重复执行。

python 复制代码
peoples=['Alice','David','Bob','Cindy']
for people in peoples:
    print("Hello,",f"{people}")
print("Thank you attend this meeting")

输出结果如下:

使用for循环处理数据,是一种对数据集执行整体操作的不错方式。

二、避免缩进错误

Python根据缩进来判断代码行与程序其他部分的关系。Python通过缩进让代码更易读。当你开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误。

1、忘记缩进

位于for语句后面且属于循环组成部分的代码行,一定要缩进。如果忘记缩进,Python会提醒你。

python 复制代码
peoples=['Alice','David','Bob','Cindy']
for people in peoples:
print(people)

Python如果没有找到期望缩进的代码块,会让你知道哪行代码出了问题。

2、忘记缩进额外的代码行

例如,如果忘记缩进循环中的第二行代码,就会出现这种情况:

python 复制代码
peoples=['Alice','David','Bob','Cindy']
for people in peoples:
    print(people)
print("明天上午十点开会!")

只有最后一个人收到了开会消息,其他人都没有收到,这是一个逻辑错误。从语法上看,这些代码是合法的,但由于存在逻辑错误,结果并不符合预期。

3、不必要的缩进

如果你不小心缩进了无需缩进的代码行,Python会指出这一点:

python 复制代码
message="Hello World"
    print(message)

Python会提示IndentationError: unexpected indent错误。

4、循环后不必要的缩进

如果你不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。在一些情况下,这可能导致Python报告语法错误,但通常只会导致逻辑错误。

三、创建数值列表

列表非常适合用于存储数值集合,而Python提供了很多工具,可帮助你高效地处理数值列表。

1、使用range()函数

Python函数range()让你能够轻松地生成一系列的数。例如,可以像下面这样使用range()函数打印一系列的数:

python 复制代码
for value in range(1,4):
    print(value)
output 复制代码
1
2
3
4

range()函数让Python从指定的第一个值开始数,并在到达指定的第二个值时停止,因此输出不包含第二个值(这里为5)。在调用range()函数时,也可只指定一个参数,这样它将从0开始,例如,range(6)返回0-5(含)。

2、使用range()函数创建数值列表

要创建数值列表,可使用list()函数将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将是一个数值列表。

python 复制代码
numbers=list(range(1,6))
print(numbers)
output 复制代码
[1, 2, 3, 4, 5]

在使用range()函数时,还可指定步长。

python 复制代码
numbers=list(range(1,6,2))
print(numbers)
output 复制代码
[1, 3, 5]

3、对数值列表执行简单的统计计算

有几个Python函数可帮助你处理数值列表。例如,你可以轻松地找出数值列表中的最大值、最小值和总和。

python 复制代码
numbers=[1,2,3,4,5]
print(max(numbers))
print(min(numbers))
print(sum(numbers))
output 复制代码
5
1
15

4、列表推导式

列表推导式(list comprehension)将for循环和创建新元素的代码合并成一行,并自动追加新元素。要使用这种语法,首先指定一个描述性的列表名,然后指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。

python 复制代码
squares=[value**2 for value in range(1,11)]
print(squares)
output 复制代码
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

四、使用列表的一部分

处理列表的部分元素,在Python中称为切片(slice)。

1、切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与range()函数一样,Python在到达指定的第二个索引之前的元素停止。

python 复制代码
animals=['cat','dog','rabbit','horse','monkey']
print(animals[0:3])
output 复制代码
['cat', 'dog', 'rabbit']

如果没有指定第一个索引,Python将自动从列表开头开始。

python 复制代码
animals=['cat','dog','rabbit','horse','monkey']
print(animals[:4])
output 复制代码
['cat', 'dog', 'rabbit', 'horse']

要让切片终止于列表末尾,也可使用类似语法。

python 复制代码
animals=['cat','dog','rabbit','horse','monkey']
print(animals[2:])
output 复制代码
['rabbit', 'horse', 'monkey']

无论列表多长,这种语法都能够让你输出从特定位置到列表末尾的所有元素。负数索引返回与列表末尾有相应距离的元素,因此可以输出列表末尾的任意切片。

python 复制代码
animals=['cat','dog','rabbit','horse','monkey']
print(animals[-3:])
output 复制代码
['rabbit', 'horse', 'monkey']

可在表示切片的方括号内指定第三个值。这个值告诉Python在指定范围内每隔多少元素提取一个。

2、遍历切片

如果要遍历列表中的部分元素,可在for循环中使用切片。在很多情况下,切片是很有用的。例如,在处理数据时,可以使用切片来进行批量处理;在编写Web应用程序时,可以使用切片来分页显示信息,并在每页上显示数量合适的信息。

python 复制代码
animals=['cat','dog','rabbit','horse','monkey']
for animal in animals[:3]:
    print(animal)
output 复制代码
cat
dog
rabbit

3、复制列表

要复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个起始于第一个元素、终止于最后一个元素的切片,即复制整个列表。

python 复制代码
my_foods=['pizza','falafel','carrot cake']
friend_foods=my_foods[:]
print("my_foods:",my_foods)
print("friend_foods:",friend_foods)
output 复制代码
my_foods: ['pizza', 'falafel', 'carrot cake']
friend_foods: ['pizza', 'falafel', 'carrot cake']

五、元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对于网站的用户列表或游戏中的角色列表至关重要。然而,你有时候需要创建一系列不可修改的元素,元组可满足这种需求。Python将不能修改的值称为不可变的 ,而不可变的列表称为元组(tuple)。

1、定义元组

元组使用圆括号而不是方括号来标识。定义元组后,就可使用索引来访问其元素,就像访问列表元素一样。

python 复制代码
dimensions=(200,50)
print(dimensions[0])
print(dimensions[1])
output 复制代码
200
50

下面来尝试修改第一个元素的值,导致Python返回类型错误的信息:

元组是由逗号标识的,如果你要定义只包含一个元素的元组,必须在这个元素后面加上逗号:

python 复制代码
my_t=(3,)

2、遍历元组中的所有值

像列表一样,也可以使用for循环来遍历元组中的所有值:

python 复制代码
dimensions=(200,50)
for dimension in dimensions:
    print(dimension)
output 复制代码
200
50

3、修改元组变量

虽然不能修改元组的元素,但可以给表示元组的变量赋值。

python 复制代码
dimensions=(200,50)
for dimension in dimensions:
    print("修改前:",dimension)
dimensions=(400,100)
for dimension in dimensions:
    print("修改后:",dimension)
output 复制代码
修改前: 200
修改前: 50
修改后: 400
修改后: 100

相比于列表,元组是更简单的数据结构。如果需要存储一组在程序的整个生命周期内都不变的值,就可以使用元组。

相关推荐
FreakStudio11 分钟前
一文速通 Python 并行计算:12 Python 多进程编程-进程池 Pool
python·嵌入式·面向对象·多进程·并行计算·电子diy
天才测试猿1 小时前
接口自动化测试之pytest接口关联框架封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
先做个垃圾出来………2 小时前
Python中使用pandas
开发语言·python·pandas
烛阴2 小时前
自动化测试、前后端mock数据量产利器:Chance.js深度教程
前端·javascript·后端
.生产的驴2 小时前
SpringCloud 分布式锁Redisson锁的重入性与看门狗机制 高并发 可重入
java·分布式·后端·spring·spring cloud·信息可视化·tomcat
不爱吃山楂罐头2 小时前
第三十三天打卡复习
python·深度学习
攒了一袋星辰2 小时前
Spring @Autowired自动装配的实现机制
java·后端·spring
我的golang之路果然有问题2 小时前
快速了解GO+ElasticSearch
开发语言·经验分享·笔记·后端·elasticsearch·golang
Dxy12393102163 小时前
DrissionPage 性能优化实战指南:让网页自动化效率飞升
运维·爬虫·python·性能优化·自动化
蹦蹦跳跳真可爱5893 小时前
Python----目标检测(《SSD: Single Shot MultiBox Detector》论文和SSD的原理与网络结构)
人工智能·python·深度学习·神经网络·目标检测·计算机视觉