经常需要遍历整个列表中的所有元素,对每个元素执行相同的操作。例:在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表,可能需要对每个元素执行相同的统计运算;在网站中,可能需要显示文章中的每个标题。需要对列表中的每个元素都执行相同的操作时,可使用python中的for循环。

假设我们有一个魔术师名单,需要将其中的的每个魔术师的名字都打印出来。为此,我们可以分别获取名单中的每个名字,但是这种做法会导致多个问题。例:如果名单很长,将包含大量重复的代码。另外,每当名单的长度发生变化时,都必须修改代码。为此,通过使用for循环,可让python处理这些问题。

magicians.pymagicians=['alice','david','carolina']
for magician in magicians:  #从列表中红magicians中取出一个名字,并将其存储在变量magician中。
print(magician)

输出:

alice
david
carolina

先定义一个列表。然后定义一个for magician循环:这行代码rang pytho从列表中取出一个名字,并将其存储在变量magician中。python 输出前面存储变量magician中的名字。即对于列表中的每个名字,python都将重复执行命令:对于列表magicians中的每位魔术师,都将其名字输出。

4.1.1深入研究循环

对于列表的每个元素,都将执行制定的步骤,而不管包含多少个元素。另外,编写for循环时,对于用于存储列表中的每个值的零时变量,可指定任何名称。例:

for dog in dogs
for item in list_of_items:

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

在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 trick, Alice.

David, that was a great trick!
i can't wait to see your next trick, David.

Carolina, that was a great trick!
i can't wait to see your next trick, Carolina.

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

在代码for magician in magicians后面,每个缩进的代码都是循环的一部分,且将针对列表中的每个值都执行一次。因此,可对列表中的每个值都执行任意次数。

PS:由于两条print语句都缩进了,因为他们讲都针对列表中的每位魔术师执行一次。第二条print语句中的换红字符"\n"在每次迭代结束后都插入一个空行。

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

在for循环后面,没有缩进的代码都只执行一次,不会重复执行。使用for循环处理数据是一种对数据执行整体操作的方式。

 4.2 避免缩进错误

python根据缩进来判断代码行与钱一个代码的行的关系,在前面的示例中,向各位魔术师显示消息的代码行是for循环的一部分,因为他们缩进了。python通过使用缩进让代码更易读;简单说,他要求你使用缩进让代码整洁而结构清晰。以下为常见缩进错误:

1>. 忘记缩进:将紧跟在for语句后面的代码进行缩进,可消除类似缩进错误。

2>.忘记缩进额外的行代码: 有有时候循环运行而不会报错,但结果出乎意料(会出现逻辑错误)。在循环中执行多项任务,缺忘记缩进其中一些代码时会出现。

3>.不必要的缩进:只要在for 循环中对每个元素执行的代码缩进

4>.遗漏冒号:for语句末尾的冒号告诉python,下一行是循环的第一行,如果遗漏冒号,将导致语法错误。

 4.3 创建数值列表

4.3.1 使用range()函数

Python函数rang()能轻松的生成一系列数字,例:

for value in range(1,5):print(value)

上述代码回打印数字1~4(不包括5),这是在编程语言中经常看到的差1行行为结果。函数range()让python从你指定的第一个值开始数,并达到第二个值后停止,因此输出不包括第二个值(这里为5).

使用range()时,如果输出 不符合预期,请尝试讲制定的值加1或者减1、

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

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

numbers= list (range(1,6))
print(numbers)

输出结果
[1, 2, 3, 4, 5]

使用函数range()时,还可制定步长。例:下列代码输出1~10以内的偶数:

even_numbers= list (range(2,20,2)) #起始数为2,终止数值为20,步长为2,
print(even_numbers)

输出结果
[2, 4, 6, 8, 10, 12, 14, 16, 18]

在此示例中,函数range()从2开始数,然后不断加2,直到达到或者超过终值11。

使用函数range()几乎能够创建任何需要的数集,例:如何创建一个列表,其中包含前10个整数(1~10)的平方呢?在python中,两个星号(**)表示乘方运算。

squares=[]    #创建空列表
for value in range(1,11):   #使用函数range()让python遍历1~10的值square= value**2   #计算当前的平方,并将结果存储到square中,,,,为简洁,可省略临时变量直接为 squares.append(value**2)squares.append(square) #将计算得到的平方值附加到列表的square末尾print(squares)

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

创建更复杂的列表时,可使用临时变量或者直接带入。使用临时变量会让代码更易读;而在其他情况下,这样做只会让代码无谓的变长。

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

有几个专门用于处理数字列表的python函数。详见注释

例:max,min,sum

4.3.4 列表解析

前面介绍声场的列表squares的方式包含三四行代码,而列表解析让你值需编写一行代码就能生成这样的列表。列表解析将for循环和创建的新元素的代码合并成一行,并自动附加新元素。面向初学者的书籍并非都会介绍列表解析。下面示例使用列表解析创建平方数。例:

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

要使用这种语法,首先指定一个描述性列表名,如squares;然后,指定一个左方括号,并定义一个表达式提供值,再加上右括号。在此示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value**2.  注意,这里的for语句末尾没有冒号。代码比较:

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

 4.4 使用列表的一部分

4.4.1 切片

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

players=['charles','maetina','michael','florence','eli']
print(players[0:3])输出['charles', 'maetina', 'michael']

该处代码输出为列表的一个切片,其中包含三名队员。

故可生成列表的任何子集,例:如果你需要提取列表的第2~4个元素,可将起始索引指定为1,并将终止索引指定为4.例:print( players[1:4])

如果你没有指定第一个索引,python将自动从头开始: print(players[:4]). 同理,省略终止索引,切片列表价格终止于末尾。

4.4.2 遍历切片

如果要遍历列表的部分元素,可在for循环中使用切片。例:

players=['charles','maetina','michael','florence','eli']
print("Here are the first three players in my team:")
for player in players[:3]:print(player .title())输出:Here are the first three players in my team:CharlesMaetina Michael

切片在很多情况下适用。例,编写游戏时,可以在玩家退出游戏时将其最终得分加到一个列表中。然后,为获取该玩家的三个最高得分,你可以将该列表按降序排列,在创建一个只包含前三个得分的切片。处理数据时,可使用切片来进行批量处理;编写web应用程序时,可使用切片来分页显示信息,并在每页显示数量合适的信息。

4.4.3 复制列表

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

my_foods=['pizza','falafel','carrot cake']
friend_foods=my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("my favorite fodds are:")
print(my_foods)print("\nMy friend's favorite foods are:")
print(friend_foods)

输出结果:
my favorite fodds are:
['pizza', 'falafel', 'carrot cake', 'cannoli']My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake', 'ice cream']

注:假如我们只是简单的将my_foods赋给friend_foods,就不能得到两个列表。因为简单赋值得语法实际上是糖python将新变量friend_foods关联到包含my_foods中的列表,因此这两个变量都指向同一个列表。

4.5元组

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

4.5.1 定义元组

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

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

我们首先定义了dimensions,为此,使用了圆括号而不是方括号。当对第一个元素进行修改时,导致python返回类型错误消息,因为试图修改元组的操作是被禁止。

4.5.2 遍历元组中的所有值

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

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

4.5.3 修改元组变量

虽然不能修改元组的元素,但可以可给存储元组的变量赋值。因此,如果要修改前诉矩形的变量尺寸,可重新定义整个元组;

dimensions=(200,50,30)
print("original dimensios:")
for dimension in dimensions:print(dimension)dimensions=(400,100)
print("\nModified dimensions:")
for dimension in dimensions:print(dimension)输出结果

original dimensios:
200
50
30

Modified dimensions:
400
100

首先定义一个元组,并将其存储尺寸输出;接下来,将一个新元组存储到变量dimension中,然后输出新尺寸,python不会报任何错误,因为给元组变量赋值是合法的。

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

转载于:https://www.cnblogs.com/Mack-Yang/p/9280791.html

class4-操作列表相关推荐

  1. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换

    python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...

  2. SAP 操作,弹出报错 - 已根据规则拒绝服务器触发的操作,是否要查看上个通讯步骤中触发的操作列表 -

    SAP 操作,弹出报错 - 已根据规则拒绝服务器触发的操作,是否要查看上个通讯步骤中触发的操作列表 - 收到用户报错说,他执行MIR7做预制发票的时候,SAP弹出如下框框: 登陆SAP,左键单击如下图 ...

  3. 以python入门教程新世界-国外旅行也不忘学习Python:Python 操作列表001

    Python从小白到入门 ~ Part 4 操作列表 001 Python是一门杰出的语言,值得你去学习,咱们现在就开始吧.--<Python编程从入门到实践>P44-P50 人生--这个 ...

  4. python代码大全表解释-python操作列表的函数使用代码详解

    python的列表很重要,学习到后面你会发现使用的地方真的太多了.最近在写一些小项目时经常用到列表,有时其中的方法还会忘哎! 所以为了复习写下了这篇博客,大家也可以来学习一下,应该比较全面和详细了 列 ...

  5. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...

    第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...

  6. python学习详解_深入解析Python小白学习【操作列表】

    1.遍历列表 需要对列表中的每个元素都执行相同的操作时,可使用for 循环: magicians = ['alice','david','carolina'] for magician in magi ...

  7. python学习(操作列表、if语句)

    前言:继续学习python,接下来学习操作列表等知识 第四章.操作列表 messages=['a','b','c','d'] for message in messages:print(message ...

  8. Python3 基础学习笔记 C03【操作列表】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  9. python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结

    下面列出列表常用的方法操作列表以及小例子: 1.  Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...

  10. python——列表简介、操作列表

    列表是什么? 列表由一系列按照特定顺序排列的元素组成.用方括号[]来表示列表,并用逗号来分隔其中的元素. 访问列表元素 只需要把元素的位置或索引告诉python 在python中,第一个列表元素的索引 ...

最新文章

  1. 状态和面向对象编程——1.定位步骤
  2. [原创]用递归写的一个object 转换成JSON的函数
  3. 免费网络推广浅析对网站首页优化的注意细节把控!
  4. tgz文件linux打开,tgz文件扩展名,tgz文件怎么打开?
  5. 《JavaScript权威指南》——JavaScript核心
  6. 搜狗深入布局人工智能 Q2营收利润创新高
  7. caffe的运行create_data.sh前对VOC2007图片格式的更改
  8. 解决IDEA中Maven加载依赖包慢的问题
  9. Numpy系列(六)常用的数组合并操作
  10. openfire:openfire单独编译指定插件的方法
  11. HDU 5025 Saving Tang Monk【bfs搜索】【北大ACM/ICPC竞赛训练】
  12. 逻辑卷管理和磁盘配额
  13. A New Romance Is Likely to End up like Your Previous Relationship 为什么每次恋爱总会走向相似的结局?
  14. SmartQ 智器—公司介绍
  15. win7/8/10,使用WSD不能打印
  16. 中国地产商寻找下一个春天 1
  17. 移动宽带连不上微软服务器,移动宽带有些网站打不开怎么解决?
  18. c语言中大写a对应的数字,123456789a
  19. EV3文件打不开,闪退怎么办(完美解决,无弹窗,无警告)
  20. 怎么用计算机画正弦函数图像,怎样用几何画板作正弦函数图象

热门文章

  1. Django的MVT、MVC模式
  2. 001-Java入门
  3. mysql图形化界面创建数据库,看完直接跪服
  4. mysql与SQL SERVER 基本语法区别
  5. VXLAN内通信与EVPN
  6. 安装web服务器访问站点的三种方式,Web服务器配置方法
  7. ionic 创建 APP
  8. miaov-关于this
  9. 关于阿里云备案和腾讯云备案的吐槽
  10. 《程序员的成长课》读书笔记心得体会2700字