Python入门学习三:如何操作列表

Python入门学习之如何操作列表:
上一篇学习了如何创建列表,本文来学习如何操作列表,如何使用简单的几行代码来遍历列表,对列表元素中的每一个元素都进行相同的操作,这对于一些实际编程过程来说将极大地提高编程效率。除此之外,还有更多对数字列表的操作需要我们了解。

1 遍历列表

遍历即对列表中每一元素进行相同的操作,实现同样的功能,在Python中使用for循环来实现列表元素的遍历。
比如用for循环来打印列表中的所有名字:

In[1]:stus=['小米','小毛','小钱','小倩','小青']#创建一个列表
for stu in stus:#定义一个for循环,并从stus中取出一个名字存储在stu中
    print(stu)
    #打印输出
    小米
    小毛
    小钱
    小倩
    小青

1.1 理解循环

使用循环时需要知道,对列表中的每个元素都将执行循环指定的步骤,并且不管列表包含多少元素,Python都将重复指定循环步骤,速度还非常快。对于用于循环中存储列表元素的临时变量的命名通常符合如下规则:

for cat in cats:
for dog in dogs:
for item in list_of_items://命名按照这种形式

1.2 在for循环中添加执行更多操作

我们为上一例中每个列表元素添加一句描述:

In[2]:
stus=['小米','小毛','小钱','小倩','小青']#创建一个列表
for stu in stus:#定义一个for循环,并从stus中取出一个名字存储在stu中
    print("hello,"+stu.title()+"from China!")
    #打印结果
    hello,小米from China!
    hello,小毛from China!
    hello,小钱from China!
    hello,小倩from China!
    hello,小青from China!

for循环中可包含多行代码:

In[3]:
stus=['小米','小毛','小钱','小倩','小青']#创建一个列表
for stu in stus:#定义一个for循环,并从stus中取出一个名字存储在stu中
    print("hello,"+stu.title()+"from China!")
    print("welcome to Zhaotong!"+stu)
    #打印输出
    hello,小米from China!
welcome to Zhaotong!小米
hello,小毛from China!
welcome to Zhaotong!小毛
hello,小钱from China!
welcome to Zhaotong!小钱
hello,小倩from China!
welcome to Zhaotong!小倩
hello,小青from China!
welcome to Zhaotong!小青

for循环后缩进的每一行代码都将被重复执行。

1.3 for循环结束后执行操作

for循环结束后没有缩进的代码只执行一次,不会被重复执行。

In[4]:
stus=['小米','小毛','小钱','小倩','小青']#创建一个列表
for stu in stus:#定义一个for循环,并从stus中取出一个名字存储在stu中
    print("hello,"+stu.title()+"from China!")
    print("welcome to Zhaotong!"+stu+"\n")
print("Thank you, everyone. Nice to meet you!")
#打印结果
hello,小米from China!
welcome to Zhaotong!小米

hello,小毛from China!
welcome to Zhaotong!小毛

hello,小钱from China!
welcome to Zhaotong!小钱

hello,小倩from China!
welcome to Zhaotong!小倩

hello,小青from China!
welcome to Zhaotong!小青

Thank you, everyone. Nice to meet you!

2 避免缩进错误

Python中总是根据缩进来判断当前代码行与前一代码行的关系。接下来介绍一些常见的缩进错误:

2.1 忘记缩进

在Python中for循环后面属于循环体的代码行必须要缩进,若忘记缩进,会显示如下提示:
在这里插入图片描述

2.2 忘记额外的代码缩进

在Python编程过程中,忘记了一些额外的缩进,程序可能不会报错,但是运行结果会违背你本来的目的。

扫描二维码关注公众号,回复: 9165729 查看本文章
In[6]:
stus=['小米','小毛','小钱','小倩','小青']#创建一个列表
for stu in stus:#定义一个for循环,并从stus中取出一个名字存储在stu中
    print("hello,"+stu.title()+"from China!")
print("welcome to Zhaotong!"+stu)#未缩进,for循环执行结束后运行一次。
#打印结果
hello,小米from China!
hello,小毛from China!
hello,小钱from China!
hello,小倩from China!
hello,小青from China!
welcome to Zhaotong!小青

2.3 不必要的缩进

在这里插入图片描述

2.4 冒号忘记

for 循环末尾的冒号说明下一行是循环的第一行,如果没有冒号,Python将不知道你要执行什么操作,因此运行会出错。
在这里插入图片描述

3 创建数值列表

需要存储一组数字的原因有很多,例如,在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度等)组成的集合。列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。明白如何有效地使用这些工具后,即便列表包含数百万个元素,你编写的代码也能运行得很好。Python函数range() 让你能够轻松地生成一系列的数字。例如,可以像下面这样使用函数range() 来打印一系列的数字:

In[9]:
for value in range(1,6):#打印结果只到第二个值的前一个数
    print(value)
    #打印结果
    1
    2
    3
    4
    5

3.1 使用range()创建数字列表

要创建数字列表,可使用函数list() 将range() 的结果直接转换为列
表。如果将range() 作为list() 的参数,输出将为一个数字列表。
在这里插入图片描述

使用range()函数时,还可以指定步长,比如打印1~10以内的偶数:

even_numbers=list(range(2,11,2))#函数range()从2开始,不断加2,直到达到或超过终值11
print(even_numbers)
#打印输出
[2, 4, 6, 8, 10]

使用range()函数计算出1~10每个数的平方:

squares=[]#创建一个空列表
for value in range(1,11):#使用函数变量1~10的值
    squares.append(value**2)#计算当前值的平方,并将平方值依次附加到列表squares的末尾
print(squares)#循环结束后,打印squares
#打印结果
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.2 对数字列表进行简单的统计计算

如何求得数字列表中的最大值、最小值和总和:
在这里插入图片描述

3.3 列表解析

我们运用列表解析来计算1~10 中每个数的平方。首先指定一个描述性的列表名,如squares ;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的
值。在这个示例中,表达式为value*2 ,它计算平方值。接下来,编写一个for 循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为for value in range(1,11) ,它将值1~10提供给表达式value**2 。请注意,这里的for 语句末尾没有冒号。

squares=[value**2 for value in range(1,11)]
print(squares)
#打印结果
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

立方解析:

squares=[value**3 for value in range(1,11)]
print(squares)
#打印结果
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

4 对列表进行部分操作

我们已经学习了如何对列表的单个元素以及整体元素进行操作,接下来我们学习如何操作列表中的部分元素。

4.1 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样,Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,这将输出分别为0、1 和2 的元素。

players=['charles','martina','michael','florence','eli']
print(players[0:3]
#打印输出
['charles', 'martina', 'michael']#打印了该列表的一个切片

可运用上述方式打印出列表中的任何列表子集:

players=['charles','martina','michael','florence','eli']
print(players[1:4])
#打印输出
['martina', 'michael', 'florence']

如果第一个索引没有指定,则默认从列表开头开始:

players=['charles','martina','michael','florence','eli']
print(players[:4])
#打印输出
['charles', 'martina', 'michael', 'florence']

同样如果第二个索引没有指定,则默认从列表末尾开始:

players=['charles','martina','michael','florence','eli']
print(players[2:])
#打印结果
['michael', 'florence', 'eli']

4.2 遍历切片

players=['charles','martina','michael','florence','eli']
print("Here are the first three players on my team:")
for player in players[:3]:#只遍历前三名队员
    print(player.title())
    #打印结果
    Here are the first three players on my team:
    Charles
    Martina
    Michael

4.3 复制列表

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

my_foods = ['pizza', 'falafel', 'carrot cake']#首先创建一个列表
friend_foods = my_foods[:]#取出列表的头尾切片,并将其存储到新列表中
print("My favorite foods are:")
print(my_foods)#打印出我喜欢的食物
print("\nMy friend's favorite foods are:")
print(friend_foods)#打印出朋友喜欢的食物,发现二者相同,实现了列表的复制
#打印结果
My favorite foods are:
['pizza', 'falafel', 'carrot cake']

My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

在列表末尾分别添加元素:

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')#在原来的列表末尾添加一个元素
friend_foods.append('ice cream')#在复制的列表末尾添加一个元素
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
#打印结果
My favorite foods are:
['pizza', 'falafel', 'carrot cake', 'cannoli']

My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake', 'ice cream']

5 元组

元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。特别注意的是元元组的元素是不能被赋值的,即不能修改元组元素的值。如下所示,试图修改后会报错。
在这里插入图片描述

5.1 修改元组变量

虽然元组元素不能修改,但是元组变量是可以被赋值的:

dimensions = (200, 50)#定义一个元组
print("Original dimensions:")#打印出元组的存储尺寸
for dimension in dimensions:
    print(dimension)
dimensions = (400, 100)#将一个新的元组存储到变量dimendion中
print("\nModified dimensions:")#并打印新的尺寸
for dimension in dimensions:
    print(dimension)
    #打印结果
    Original dimensions:
   200
   50

    Modified dimensions:
    400
    100

6 设置代码格式

6.1 缩进

PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。
在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。每款文本编辑器都提供了一种设置,可将输入的制表符转换为指定数量的空格。你在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。
在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合使用了制表符和空格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这样的功能。

6.2 行长

很多Python程序员都建议每行不超过80字符。最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件
的完整行。PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习期间,你不用过多地考虑代码的行长,但别忘了,协作编写程序时,大家几乎都遵守PEP 8指南。在大多数编辑器中,都可设置一个视觉标志——通常是一条竖线,让你知道不能越过的界线在什么地方。

6.3 空行

要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用;只要按本书的示例展示的那样做,就能掌握其中的平衡。例如,如果你有5行创建列表的代码,还有3行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。然而,你不应使用三四个空行来将他们分隔开。

7 总结

以上是这部分内容的学习,有不足的地方请提出,跪求评论,谢谢!!!

参考博客:https://blog.csdn.net/qq_40074819/article/details/104066881
参考书籍:《Python编程从入门到实践》
PEP 8格式设置指南:http://python.org/dev/peps/pep-0008/

发布了8 篇原创文章 · 获赞 0 · 访问量 1211

猜你喜欢

转载自blog.csdn.net/qq_40074819/article/details/104208269