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

一、遍历整个列表

1-1.假设有一个魔术师名单,需要将其中每个魔术师的名字都打印出来。

# 用for循环来打印魔术师名单中的名字
magicians=[‘alice‘,‘david‘,‘carolina‘]
for magician in magicians:      #这里面的magician和magicians是便于让读者得知for循环在哪个列表中进行遍历
    print(magician)

#输出结果:
alice
david
carolina

 解析以上代码:

a. 先定义一个列表

b. 定义一个for循环:从列表magicians中取出一个名字,并将其存储在变量magician中

c. 让python打印前面存储到变量magician中的名字

d. 重复执行for循环并打印出来

1-2. 假设有一个魔术师名单,需要将所有魔术师打印出来,并且每个名字后面打印一条消息:指出他的表演太精彩。

magicians=[‘alice‘,‘david‘,‘carolina‘]
for magician in magicians:
    print(magician.title() + ",that was a great trick!")

#输出结果:
Alice,that was a great trick!
David,that was a great trick!
Carolina,that was a great trick!

 解析以上代码:

a. 先定义一个列表

b. 定义一个for循环:从列表magicians中取出一个名字,并将其存储在变量magician中

c. 让python打印前面存储到变量magician中的名字,用title方法让每个名字第一个字母大写,并用(+)拼接后面的语句

d. 重复执行for循环并打印出来

1-3.假设有一个魔术师名单,需要将所有魔术师打印出来,并且每个名字后面打印一条消息:指出他的表演太精彩。在最后一行代码下面加一行代码,告诉每位魔术师,我们期待他的下一次表演

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() + ".\n")

#输出结果:
Alice,that was a great trick!
I can‘t wait to see your next trickAlice.

David,that was a great trick!
I can‘t wait to see your next trickDavid.

Carolina,that was a great trick!
I can‘t wait to see your next trickCarolina.

 解析以上代码:

a. 由于两条print语句都缩进了,因此它们都将针对列表中的每位魔术师执行一次

b. 第二条print语句中的换行符“\n”:在每次迭代结束后插入一个空行

1-4. for循环的结束:在第3个实例中加入一条向全体魔术师致谢的消息,感谢他们的精彩表演。

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() + ".\n")
print("Thank you,everyone.That was a great magic show!")

#输出结果:
Alice,that was a great trick!
I can‘t wait to see your next trickAlice.

David,that was a great trick!
I can‘t wait to see your next trickDavid.

Carolina,that was a great trick!
I can‘t wait to see your next trickCarolina.

Thank you,everyone.That was a great magic show!

 解析以上代码:

a.for循环后面,没有缩进的代码都只执行一次,而不会重复执行。第三条print语句没有缩进,因此只执行一次

二、避免缩进错误

1.忘记缩进:对于for语句后面且属于循环组成部分的代码行,一定要缩进。如果没有缩进报错:IndentationError: expected an indented block

magicians=[‘alice‘,‘david‘,‘carolina‘]
for magician in magicians:
print(magician.title() + ",that was a great trick!")

#输出结果:
IndentationError: expected an indented block

2.忘记缩进额外的代码行。如下面的代码,并没有按照1-3的需求来执行

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() + ".\n")

#输出结果:
Alice,that was a great trick!
David,that was a great trick!
Carolina,that was a great trick!
I can‘t wait to see your next trickCarolina.

3. 不必要的缩进:以下代码的print不属于前一行代码,所以不需要缩进

message ="Hello Python World!"
    print(message)

#输出结果:IndentationError: unexpected indent

4. 循环后不必要的缩进:本该执行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() + ".\n")
    print("Thank you,everyone.That was a great magic show!")

#输出结果:
Alice,that was a great trick!
I can‘t wait to see your next trickAlice.

Thank you,everyone.That was a great magic show!
David,that was a great trick!
I can‘t wait to see your next trickDavid.

Thank you,everyone.That was a great magic show!
Carolina,that was a great trick!
I can‘t wait to see your next trickCarolina.

Thank you,everyone.That was a great magic show!

5. 遗漏冒号:for语句末尾的冒号是告知python,下一行是循环的第一行

magicians=[‘alice‘,‘david‘,‘carolina‘]
for magician in magicians
    print(magician.title() + ",that was a great trick!")

#输出结果:SyntaxError: invalid syntax

 

三、创建数值列表

1.使用函数range( ):轻松生成一系列的数字。函数range指定第一个值开始数,并到达指定第二个值后停止,因此输出不包含第二个值。

如果range输出不符合预期,可以尝试指定的值加1或减1.

for value in range(1,5):
    print(value)
#输出结果:
1
2
3
4

2. 使用range( )创建数字列表

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

even_numbers = list(range(2,11,2))     #第一个2指的是从2开始数;最后一个2指的是步长,也就是每次叠加需要增加2,知道达到或超过终值11
print(even_numbers)

#输出结果:[2, 4, 6, 8, 10] 

b. 用range创建:前10个整数(1~10)的平方

squares = []
for value in range(1,11):
    square = value**2
    squares.append(square)
print(squares)

#输出结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 解析以上代码:

a. 创建一个空列表

b. 使用函数range( )让python遍历1~10的值

c. 在循环中,计算当前值得平方,并将结果存储到变量square中

d. 将新计算得到的平方值附加到列表squares末尾

e. 循环结束,打印列表squares

3. 对数字列表执行简单的统计计算

digits=[1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))

#输出结果:
0
9
45

4. 列表解析

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

 解析以上代码:

a. 指定一个列表名

b.定义一个表达式,用来生成要存储的列表的值,如上面的value**2

c. 编写一个for循环,用于给表达式提供值。如上面的for value in range(1,11),它将值1~10提供给表达式value**2。这里的for循环末尾不需要冒号

备注:如果需要些三四行代码来生成繁复的列表时,可以考虑创建列表解析

四、使用列表的一部分

1. 切片:指定要使用的第一个元素和最后一个元素的索引,到达指定的第二个索引前面的元素后停止。

players = [‘charles‘,‘martina‘,‘michael‘,‘florence‘,‘eli‘]
print(players[1:4])     #打印前三名
print(players[:4])      #打印前四名,没有指定第一个元素就从头开始取值
print(players[2:])      #打印后三名,没有指定第二个元素就打印到结尾

#输出结果:
[‘martina‘, ‘michael‘, ‘florence‘]
[‘charles‘, ‘martina‘, ‘michael‘, ‘florence‘]
[‘michael‘, ‘florence‘, ‘eli‘]

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

3. 复制列表:用同时省略起始索引和终止索引([ : ])的方法来实现,这个方法是创建一个适于第一个元素,终止于最后一个元素的切片,即复制整个列表。

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‘]

 解析以上代码:

a.my_foods的元素赋值到新列表friend_foods中,也就是将副本存储到friend_foods中

b. 在列表my_foods中添加“cannoli”

c. 在列表friend_foods中添加“ice cream”

d. 最后打印这两个列表

五、元组

1.定义元组:使用圆括号标识。定义元组后,就可以使用索引来访问元素,就想访问列表元素一样。元组里面的元素不能修改

dimensions = (200,50)
print(dimensions[0])
dimensions[0] =250
print(dimensions[0])

#输出结果:
200
TypeError: ‘tuple‘ object does not support item assignment     #由于元组中的元素不能修改,所以第二个打印报错

2. 遍历元组中的所有值:像列表一样使用for循环

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

#输出结果:
200
50

3. 修改元组变量:虽然不能修改元组的元素,但可以给存储元组的变量赋值。

dimensions = (200,50)
print("Original dimensions:")
for dimension in dimensions:
    print(dimension)

dimensions= (400,100)
print("\nModified dimensions:")
for dimension in dimensions:
    print(dimension)

#输出结果:
Original dimensions:
200
50

Modified dimensions:
400
100

  

备注:此内容从《python编程:从入门到实践》中摘录

  

 

原文地址:https://www.cnblogs.com/heiqiuxixi/p/12322618.html

时间: 2024-11-05 17:19:21

python编程:从入门到实践----第四章>操作列表的相关文章

《python编程-从入门到实践》笔记3_操作列表

遍历整个列表 for循环 例子:lists=['A','B','C','D'] for list in lists: print(list) 结果:A B C D list 是临时变量 ,for循环依次将列表lists中的元素取出,执行下面缩进部分的代码 for循环后一定要有冒号 毎执行一次for中的代码后就会换行,所以结果中的ABCD是分行显示的 for下面的缩进代码才是循环的一部分,没缩进的只循环一次.python根据缩进来判断代码和前一行代码的关系 错用缩进叫做'缩进错误'或'逻辑错误':

《Python编程从入门到实践》第二章_变量和简单数据类型

什么是变量呢? 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python! 这里的message就是变量.在程序中可随时修改变量的值,而python将始终记录变量的最新值. 变量命令的规则有哪些呢? 变量只能包含字母数字下划线. 变量名不能包含空格,但可以使用下划线来分割其中的单词 不要将python关键字和函数名作为变量名 变量名应既简单又具有描述性 慎用小写字符l和大写字

Python编程从入门到实践-第2章-字符串

一.字符串:一系列字符,python中用一号括起来的即为字符串,可单可双 "This is a string." 'This is also a string.' #引号灵活性的作用:可在字符串中包含引号和撇号 'I told my friend,"python is my favorite language!"' "the language 'Python' is named after Monty Python,not the snake."

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

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

Python编程从入门到实践(基础入门) 򝻨

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

《Python编程从入门到实践》_第十章_文件和异常

读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕中: with open("pi_digits.txt") as fileobject: contents = fileobject.read() print(contents) #运行结果 3.1415926535 8979323846 2643383279 使用函数open()打开文件

分享 《Python编程从入门到实践》+PDF+源码+EricMatthes+袁国忠

下载:https://pan.baidu.com/s/1pUlPpTMnffNgMfovUbZkJg 更多资料分享:http://blog.51cto.com/14087171 Python编程从入门到实践(高清中文版PDF+高清英文版PDF+源代码) 久负盛名的python入门书籍. 高清中文版462页,带目录和书签,文字可以复制粘贴: 高清英文版562页,带目录和书签,文字可以复制粘贴: 中文和英文两版对比学习: 讲解详细并配有源代码. 其中,高清中文版如图: 原文地址:http://blo

《矩阵分析与应用(第2版)张贤达》PDF+《Python编程从入门到实践》中英文PDF+源代码

下载:https://pan.baidu.com/s/1R8hwv-PZ7DYsl_gUtLWrag <矩阵分析与应用(第二版)张贤达>PDF 下载:https://pan.baidu.com/s/1hxfM_cL7hGpz7baorzuTjw <Python编程从入门到实践>(高清中文版PDF+高清英文版PDF+源代码) 下载:https://pan.baidu.com/s/1oRGp4_LfDVLo86r79pnXvg <凸优化>中文版PDF+英文版PDF+习题题解

《Python编程从入门到实践》+《流畅的Python》+《Python基础教程(第3版)》分析对比

<Python编程从入门到实践>针对所有层次的Python 读者而作的Python 入门书.全书分两部分:第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib.NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表.字典.if 语句.类.文件与异常.代码测试等内容:第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑. <