在本章中,你将学习:如何高效地处理列表中的元素;如何使用for循环遍历列表,Python 如何根据缩进来确定程序的结构以及如何避免一些常见的缩进错误;如何创建简单的数字列表, 以及可对数字列表执行的一些操作;如何通过切片来使用列表的一部分和复制列表。你还会学习 元组(它对不应变化的值提供了一定程度的保护)。

4.1 遍历整个列表

list = ['苹果','香蕉','橘子']
for fruit in list:print(fruit)    

终端显示:

>>>
苹果
香蕉
橘子

4.2 避免缩进错误

常见缩进错误:

4.2.1 忘记缩进

IndentationError: expected an indented block

4.2.2 忘记缩进额外的代码行

一般情况下属于逻辑错误。从语法上看,这些Python代码是合法的,但由于存在逻辑错误,结果并 不符合预期。如果你预期某项操作将针对每个列表元素都执行一次,但它却只执行了一次,请确定是否需要将一行或多行代码缩进。

4.2.3 不必要的缩进

IndentationError: unexpected indent 

4.2.4 循环后不必要的缩进

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

4.2.5 遗漏了冒号

这种错误虽然易于消除,但并不那么容易发现。程序员为找出这样的单字符错误,花费的时间多得 令人惊讶。这样的错误之所以难以发现,是因为通常在我们的意料之外。

4.3 创建数值列表

4.3.1 使用函数 range()

取值原则:取左不取右,也就是数学上的左闭右开区间。

for value in range(1,5): print(value)
>>>
1
2
3
4

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

num = list(range(1,4))
print(numbers) >>>
[1, 2, 3] 

使用函数range()时,还可指定步长。例如,下面的代码打印1~10内的偶数:

num = list(range(2,11,2))
print(even_numbers) >>>
[2, 4, 6, 8, 10] 

在Python中,两个星号(**)表示乘方运算。下面的代码演示了 如何将前10个整数的平方加入到一个列表中:

list = []
for value in range(1,11):list.append(value**2)print(list)>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

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

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

4.3.4 列表解析

list = [value for value in range(1,11)]

要使用这种语法,首先指定一个描述性的列表名,如list;然后,指定一个左方括号, 并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value**2,它计 算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中, for循环为for value in range(1,11),它将值1~10提供给表达式value**2。

请注意,这里的for 语句末尾没有冒号。

4.4 使用列表的一部分

4.4.1 切片

4.4.2 遍历切片

list = [value**3 for value in range(1,11)]#打印前两位数
print('The first two items in the list are')
for value in list[:2]:print(value)
#打印中间三位数
print('Three items from middle list are.')
for item in list[4:7]:print(item)
#打印后四位数
print('The last four items from middle list are.')
for items in list[-4:]:print(items)>>>
The first two items in the list are
1
8
216
343
The last four items from middle list are.
1
8
27
64
125
216

4.4.3 复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。

list = ['苹果','香蕉','橘子']
copy_list = list[:]     ①
list.append('梨')
copy_list.append('柚子')
print(list)
print(copy_list)
>>>
['苹果', '香蕉', '橘子', '梨']
['苹果', '香蕉', '橘子', '柚子']

之所以在①处没有直接用 copy_list = list,是因为那只是简单地将 my_foods赋给friend_foods,就不能得到两个列表。

list = ['苹果','香蕉','橘子']
copy_list = list
list.append('梨')
copy_list.append('柚子')
print(list)
print(copy_list)
>>>
['苹果', '香蕉', '橘子', '梨','柚子']
['苹果', '香蕉', '橘子', '梨','柚子']

这种语法实际上是让Python将新变量copy_list关联到包含在list中的列表,因此这两个变量都指向同一个列表。鉴于此,当我们'梨'添加到list中时,它也将出现在copy_list中;同样,虽然'柚子'好像只被加入到了copy_list中,但它也将出现在这 两个列表中。

4.5 元组

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

4.5.1 定义元组

tuple = ('刀削面','炸酱面','热干面')

4.5.2 遍历元组中的所有值

tuple = ('刀削面','炸酱面','热干面')
for food in tuple:print(food) >>>
刀削面
炸酱面
热干面

4.5.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
50Modified dimensions:
400
100

操作列表(创建、遍历、统计、解析、切片、复制)相关推荐

  1. Python编程从入门到实践~操作列表~创建数值列表

    使用函数range() 使用range() 创建数字列表 对数字列表进行统计 列表解析

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

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

  3. python切片复制

    对于列表,直接赋值来实现复制的话,是引用传递,修改新列表,会造成原列表的修改. 可以使用切片复制,这样子就不会对原列表造成影响 list_a = list_b[::]

  4. 七、Python第七课——有关列表的二三事(切片、切片的遍历和复制)

    目录 一.切片 二.遍历切片 三.列表的复制 一.切片 此前,我们学习了如何访问单个列表以及如何处理列表中的所有元素,那么我们如何处理列表中的部分元素呢?这就引出一个概念"切片"  ...

  5. python 切片_零基础学python_11_列表(切片+遍历切片+复制)

    1.列表切片 要创建切片,可指定要使用的第一个元素和最后一个元素的索引.与函数 range() 一样, Python 在到达你指定的第二个索引前面的元素后停止.要输出列表中的前三个元素,需要指定索引 ...

  6. 06-列表(列表的使用、列表中元素的提取--切片、列表的通用操作、列表的方法、列表的遍历-for循环和range()函数)

    1. 序列 (sequence) 1.1 基本概念 序列是Python 中最基本的一种数据结构.序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置 (索引) 并且序列中的数据会按照添加 ...

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

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

  8. python在冒号处显示语法错误_深入解析Python小白学习【操作列表】

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

  9. python怎样遍历列表中数字_Python基础-列表操作(2):列表的遍历和数字列表

    Python基础-列表(2): 1.对列表进行遍历操作 python中遍历的写法是for xx in list,末尾跟个冒号,第二行开始缩进,进入循环之中.word = ['a','b','c'] f ...

  10. 【Unity3D读取数据】(二)Json文件操作(创建、读取、解析、修改)

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

最新文章

  1. Mybatis原理分析一 从JDBC到Mybaits
  2. 高压放电与防静电塑料包装
  3. linux下如何判断oracle数据库tns是否设置正常
  4. android实现过程,Android:一个完整app开发流程
  5. 正则表达式与神经网络的深度融合
  6. 【Tensorflow】小白入门实战基础篇(上)
  7. Nodejs中puppeteer通过Event抓取HAR数据
  8. lisp xy轴不等比缩放_解决高缩放等级下的抖动问题
  9. xbox360fsd更新游戏封面_Steam推出了新版游戏库,界面更为简洁
  10. 大数据踩坑之旅: 从数据可视化到商业智能
  11. 在SAP自建 全国各大城市数据表。
  12. 计算机一级在线模拟试题,全国计算机等级考试一级模拟试题及答案解析
  13. 用jq实现轮播图片的效果
  14. /home/www/easyadmin/vendor/topthink/think-helper/src/helper.php 报错处理
  15. 那些关于程序员的段子
  16. video视频关键帧截取
  17. 成都web前端开发工程师
  18. c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷
  19. Mysql社区版安装教程
  20. 贝索斯宣布“退位”,去追寻“诗和远方”

热门文章

  1. msp430G2553串口通信_launchpad串口通信
  2. centos7安装MySql8.0.29教程
  3. 三国志战略版:Daniel_无当飞军与白马义从之对比分析
  4. 在 Golang 中如何快速判断字符串是否在一个数组中
  5. Linux可视化管理工具Cockpit
  6. 5-8基于insert update delete的注入利用案
  7. #牛客网 大吉大利,今晚吃鸡——跑毒篇 (模拟)
  8. nodecu8266 lua应用(三)----模块基础
  9. 概率密度函数和分布函数
  10. 公安部称:身份证网络查询不会侵犯公民隐私