第四章:操作列表

第四章:操作列表

4.1 遍历整个列表

如果名单很长,将包含大量反复的代码。另外,每当名单的长度发生变化时,都必须修改代码。通过for

循环,可让Python去处理这些问题

1)使用for循环来打印魔术师名单中的所有名字:  magicians.py

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician(变量名) in magicians:

print(magician) 变量名

2)这行代码让Python从列表magicians中取出一个名字,并将其存储在变量magician中。最后,我们让

Python打印前面存储到变量magicica中的名字。这样,对于列表中的每个名字,Python都将重复执行

代码行。

也可以这样解读代码:对于列表magicians中的每位魔术师,都将其名字打印出来

4.1.1 深入地研究循环

循环这种概念很重要,因为它是计算机自动完成重复工作的常见方式之一。

1)Python将首先读取其中第一行代码:for magician in magicians

这行代码让Python获取列表magicians中的第一个值(‘alice‘),并将其存储到变量magician

中。

2)接下来,Python读取下一行代码:print(magician)

它让Python打印magician的值依然是‘alice‘

3)接下来,Python再次执行循环,对列表中最后一个值----‘carolina‘进行处理。在这个示例中,for循环后面没有其他代码,因此程序就此结束。

补充:另外,编写for循环时,对于用于存储列表中每个值的临时变量,可指定任何名称。然而,选择描述单个列表元素的有意义的名称大有帮助。例如,对于小猫列表、小狗列表和一般性列表。

例:for cat in cats:

for dog in dogs:

for item in list_of_items:

4.1.2  在for循环中执行更多操作

1)在for循环中,可对每个元素执行任何操作。对于每位魔术师,都打印一条消息,指出他的表演精彩

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician in magicians:

print(magician.title()+‘,that was a great trick!‘)

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

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

2)下面打印一条向全体魔术师致谢的消息,感谢他们的精彩表演。

3)想要打印一条给全体魔术师的致谢消息,需要将相应的代码放在for循环后面,且不缩进

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician in magicians:

print(magician.title()+‘,that was a great trick!‘)

print("I can‘t wait to see your next trick, "+magician.title()+‘.‘)

print(‘Thank you,everyone.That was a great magic show!‘)

4.2   缩进

4.2.1 忘记缩进

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

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician in magicians:

print(magician)  #会有缩进报错:IndentationError: expected an indented block

4.2.2 忘记缩进额外代码行

1)有时候,循环能够运行而不会报告错误,但结果可能会出乎意料。

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician in magicians:

print(magician.title()+‘,that was a great trick!‘)

print("I can‘t wait to see your next trick, "+magician.title()+‘.‘)#忘记缩进的额外代码行执行语句后效果与需求不符

4.2.3 不必要的缩进

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

例:message="Hello Python world!"

print(message) #不必要的所及报错 :IndentationError: unexpected indent

4.2.4 循环后不必要的缩进

1)如果你不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。

这可能导致Python报告语法错误,但在大多数情况下,这只会导致逻辑错误。

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician in magicians:

print(magician.title()+‘,that was a great trick!‘)

print("I can‘t wait to see your next trick, "+magician.title()+‘.‘)

print(‘Thank you,everyone.That was a great magic show!‘) #循环后不必要的缩进

4.2.5 遗漏了冒号

1)for语句末尾的冒号告诉Python,下一行是循环的第一行

例:magicians=[‘alice‘,‘david‘,‘carolina‘]

for magician in magicians    #遗漏冒号报错:SyntaxError: invalid syntax

prin(magician)

4.3  创建数值列表

4.3.1  使用函数range()

1)Python函数range()让你能够轻松地生成一系列的数子  numbers.py

例:for value in range(1,5)

print(value)   ===>打印数子1,2,3,4

2)函数range()让Python从你指定的第一个值开始,并在到达你指定的第二个值后停止,因此输入不包含第二个值(这里为5)

4.3.2  使用range()创建数子列表

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

4.3.3  对数子列表执行简单的统计计算

1)min(变量名)方法:找出列表中的最小值

例:digits=[1,2,3,4,5,6,7,8,9,0]

min(digits) ===> 0

2)max(变量名)方法:找出列表中的最大值

例:digits=[1,2,3,4,5,6,7,8,9,0]

max(digits) ===>9

3)sum(变量名)方法:找出列表总和

例:digits=[1,2,3,4,5,6,7,8,9,0]

sum(digits) ===>45

4.3.4  列表解析

1)列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素

例:squares=[value**2 for value in range(1,11)]

print(squares)

2)要使用这种语法

<1>首先指定一个描述性的列表名,如squares。

<2>然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中表达式为 "value**2" 它计算平方值

<3>接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,for循环为 “for value in range(1,11)”

它将值1~10提供给表达式  “value**2”

<4>注意:这里的for循环语句末尾没有冒号

4.4.1  切片

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

例:players=[‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]

print(players[0:3])

2)可以生产列表的任何子集,例如:如果你要提取列表的第2~4个元素,可将起始索引指定为1,并将终止索引指定为4

例:players=[‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]

print(players[1:4])

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

例:players=[‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]

print(players[:4])

4)要让切片终止列表末尾,也可使用类似的语法。例如,如果要提取第3个元素到列表末尾的所有元素,可将起始索引指定为2,并省略终止索引

例:players=[‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]

print(players[2:])

5)无论列表多长,这种语法都能够让你输出从特定位置到列表末尾的所有元素。本书前面说过,负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。例如,如果你要输出名单上的最后三名队员,可以使用切片players[-3:]

例:players=[‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]

print(players[-3:])

6)切片的第三个参数:从x到y-1,每n个取一个制作切片(可以理解为步长)

例:num=[num for num in range(1,101)]

print(num[2::3])    #从1到100取3的倍数      从3开始到列表最后个元素100,每3个取一个制作切片

print(num[4:50:5])  #从5开始到50取5的倍数   从5开始到50 步长为5

4.4.2  遍历切片

1)如果要遍历列表的部分元素,可在for循环中使用切片。在下面的示例中,我们遍历前三名队员,并打印他们名字

例:players=[‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]

print("Here are th first three players on my team:")

for player in players[:3]:

print(player.title())

2)在很多情况下,切片都很有用。例如,编写游戏时,你可以在玩家退出游戏时将其最终得分加入到一个列表中。然后,为获取该玩家的三个最高得分,你可以将该列表按降序排列,再创建一个只包含前三个得分的切片

4.4.3  复制列表

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

假如,假设有一个列表,其中包含你最喜欢的三种食品,而你还想创建另一个列表,在其中包含一位朋友喜欢的所有食品。

不过,你喜欢的食品,这位朋友都喜欢,因此你可以通过复制来创建这个列表

例:my_foods=[‘pizza‘,‘falafel‘,‘carrot cake‘]

frind_foods=my_foods[:]

print("My favorite foods are: ")

print(my_foods)

print("\nMy friends‘s favorite foods are: ")

print(friend_foods)

4.5  元组

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

4.5.1  定义元组

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

例:dimensions=(200,50)

dimensions[0]=250    #改变第一个元素的值

===> 此时python会报错,并给出错误提示:不能给元组的元素赋值

4.5.2  遍历元组中的所有值

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

例:dimensions=(200,50)

for dimension in dimensions:

print(dimension)

4.5.3  修改元组变量

1)虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述举行的尺寸,可重新定义整个元组:

例:dimensions=(200,50)

print("Original dimensions: ")

for dimension in dimensions:

print(dimension)

dimensions=(400.100)   #给元组重新赋值

print("")

4.6      设置代码格式

为确保所有人编写的代码的结构都大致一致,Python程序猿都遵循一些格式设置约定。学会编写整洁的Python后,就能明白他人编写的Python代码的整体结构——只要他们和你遵循相同的指南。要成为专业程序猿,应从现在开始遵循这些指南,以养成良好的习惯。

4.6.1    格式设置指南

详情请访问https://www.python.org/dev/peps/pep-0008/,  阅读PEP 8 格式设置指南

4.6.2    定制Geany的设置

1、将制表符转换为空格

选择菜单Edit(编辑)---->Preferences(首选项),再依次单击Editor(编辑器)---->Indentation(缩进)。将制表符宽度设置为4

并将Type设置为Spaces

如果你在程序中混合使用了标示符和空格,可选择菜单Document(文档)---->Replace Tabs by Spaces(替换制表符为空格),将所有制表符都转换为空格

2、设置行长标志

要在Geany中设置这项功能,请选择菜单Edit(编辑)---->Preferences(首选项),再依次单击Editor(编辑器)---->Display(显示),确保启用了长行标志,再确保文本框“列”中的值为79

3、缩进和撤销缩进代码块

要缩进代码块         可按Ctrl+I

要撤销代码块缩进     可按Ctrl+U

时间: 2024-09-30 09:13:43

第四章:操作列表的相关文章

python编程:从入门到实践----第四章&gt;操作列表

一.遍历整个列表 1-1.假设有一个魔术师名单,需要将其中每个魔术师的名字都打印出来. # 用for循环来打印魔术师名单中的名字 magicians=['alice','david','carolina'] for magician in magicians: #这里面的magician和magicians是便于让读者得知for循环在哪个列表中进行遍历 print(magician) #输出结果: alice david carolina 解析以上代码: a. 先定义一个列表 b. 定义一个fo

第四章-操作列表

4-1 比萨 : 想出至少是三种你喜欢的比萨,将其名称存储在一个列表中,再使用for循环将每种比萨的名称都打印出来. 修改这个for循环,使其打印包含比萨名称的矩阵,而不仅仅是比萨的名称.对于每种比萨,都显示一行输出,如"I like pepperoni pizza". 在程序末尾添加一行代码,它不在for循环中,指出你有多喜欢比萨.输出应包含针对每种比萨的消息,还有一个总结性矩阵,如"I really love pizza!" 1 pizzas=['a','b',

Python编程从入门到实践(第三、四章的列表和元祖) &#142015;

原文: http://blog.gqylpy.com/gqy/414 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

第 4 章 操作列表

4.1 遍历整个列表 for循环 刚开始使用循环时请牢记,对列表中的每个元素,都将执行循环指定的步骤,而不管列表包含多少个元素.如果列表包含一百万个元素,Python就重复执行指定的步骤一百万次, 且通常速度非常快. 编写for 循环时,对于用于存储列表中每个值的临时变量,可指定任何名称. 4.1.2 在for 循环中执行更多的操作 4.1.3 在for 循环结束后执行一些操作 在for 循环后面,没有缩进的代码都只执行一次,而不会重复执行. 你可能使用for 循环来初始化游戏--遍历角色列表,

第四章 操作Docker容器

容器是镜像的一个运行实例.所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层.如果认为虚拟机是模拟运行的一整套操作系统(包括内核.应用运行态环境和其他系统环境)和跑在上面的应用,那么Docker容器就是独立运行的一个(或一组)应用,以及它们必须的运行环境.  4.1 创建容器 4.1.1 新建容器 可以使用docker create 命令新建一个容器: [[email protected] ~]# docker run -it ubuntu:latest [email prote

《python从入门到实践》--第四章基本操作列表 重点及课后练习

题目: 4-1 比萨 :想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for 循环将每种比萨的名称都打印出来.修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅是比萨的名称.对于每种比萨,都显示一行输出,如“I like pepperoni pizza”.在程序末尾添加一行代码,它不在for 循环中,指出你有多喜欢比萨.输出应包含针对每种比萨的消息,还有一个总结性句子,如“I really love pizza!”.4-2 动物 :想出至少三种有共同特征的动物,将这些动物的名

python第四章文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') # 打开文件 obj.write() # 把内容写入文件 obj.read() # 读取文件内容 obj.close() # 关闭文件(保存文件,把内存上的数据写入到文件上-->硬盘上,01010101存储的) # 3步:1.打开文件. 2. 操作文件 3. 关闭文件 4.2打开文件 4.2.1语句 file = open('文件路径',mode = 'r',encoding

perl5 第四章 列表和数组变量

第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮  1.数组的存取  2.字符串中的方括号和变量替换   3.列表范围  4.数组的输出  5.列表/数组的长度  6.子数组  7.有关数组的库函数 一.列表  列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:().  注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值. 

Learn Prolog Now 翻译 - 第四章 - 列表 - 第二节,列表成员

内容提要 本章主要介绍使用递归操纵列表的一个实际例子:判断一个元素是否在包含在一个列表中. 是时候介绍第一个Prolog中通过递归操纵列表的程序例子了.我们最感兴趣的事情之一是,某个对象是否是列表中的元素.所以,我们想写一个程序,当假设输入是一个对象X和一个列表L, 得出结果是X是否属于L.这个程序的名字通常是:member,是Prolog程序中使用递归操纵列表最简单的例子,如下: member(X, [X|T]). member(X, [H|T]) :- member(X, T). 这就是全部