本文是Python实战–从入门到精通系列的第二篇文章:

【Python】Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型

Python实战从入门到精通之二 – 教你使用Python中列表操作


文章目录

  • 1、列表概述
  • 2、访问列表元素
  • 3、修改、添加、删除列表中元素
    • 3.1 修改列表元素
      • 3.2 列表中添加元素
      • 3.2 列表中删除元素
  • 4、列表排序
  • 5、列表长度
  • 6、列表遍历
    • 6.1 for循环遍历列表
  • 7、创建有规律的数字列表
    • 7.1 函数range()
    • 7.2 range()创建数字列表
    • 7.3 对数字列表执行简单的统计
  • 8 列表解析
  • 9 列表切片
    • 9.1 列表切片使用列表副本
    • 9.2 元组
      • 9.2.1 元组定义
      • 9.2.2 修改元组变量

1、列表概述

列表: 由一系列元素组成,Python中使用 “[]” 表示列表,逗号分隔元素,如下所示:

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表

2、访问列表元素

可以使用列表名+索引对列表元素进行访问,注意索引也是从0开始计算

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
print(Languages[0])
输出为:Python

3、修改、添加、删除列表中元素

3.1 修改列表元素

修改列表元素和访问列表元素类似:

  1. 使用列表名+索引访问列表元素
  2. 再将索引处列表元素赋予新的值即可
Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
Languages[0] = 'C++'    #修改列表元素值
print(Languages[0])
输出为:C++

3.2 列表中添加元素

  • 列表末尾添加元素:append()方法,只需指定元素值即可
  • 列表中插入元素:insert()方法,需要指定插入元素的索引和元素值
Languages = ['Python']  # Languages表示一个列表
Languages.append('C')   #末尾添加元素
print(Languages)
Languages.insert(0, 'Java') = 'C++'    #在0处插入元素
print(Languages)
输出为:
(1)Python C
(2)Java Python C

3.2 列表中删除元素

  • 使用del语句删除元素

用法: 需要知道元素索引

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
del Languages[0]     #删除0位置的元素
print(Languages)
输出为:
Java C

注:del语句删除后的元素不能再被访问

  • 使用pop()方法删除元素

pop()方法用来删除列表中的元素,需要对其加元素索引即可(如果无索引,则默认删除最后一个元素)。pop()方法删除列表元素后,你能够接着使用它,将其赋值给另一个变量即可。

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
Popped_Language =Languages.pop()     #无索引,默认删除末尾元素
print(Languages)
print(Popped_Language)
输出为:
(1) Python Java
(2) C
  • 根据值删除列表元素

有时候你知道要删除的值,但是并不知道其位置,则可以remove()方法进行删除。该方法智能删除列表中第一个出现此元素的值,如果有多个值出现,则需要利用循环进行删除

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
Removed_Languages =Languages.remove(‘Java’)     #删除元素值‘Java’
print(Languages)
print(Removed_Language)
输出为:
(1) Python C
(2) Java

4、列表排序

Python中提供了两个方法能够方便的对列表进行排序:

  • 永久排序:sort()方法

sort(),对列表进行永久排序,sort()中有个参数reverse,如果设置为true,则可以实现对列表进行逆序排序

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
Languages.sort()     #列表排序
print(Languages)
输出为:
C Java Python
  • 临时排序:sorted()函数

sorted()函数,对列表进行临时排序,对原始列表并没有改变

Languages = ['Python', 'Java', 'C']  # Languages表示一个列表
print(sorted(Languages))  #按顺序打印列表
print(Languages)
输出为:
(1) C Java Python
(2) Python Java C
  • 倒序打印列表元素:reverse()方法

倒着打印列表中的元素列表

Languages = ['C', 'Java', ''Python]  # Languages表示一个列表
Languages.reverse()     #列表排序
print(Languages)
输出为:
Python Java C

5、列表长度

在实际编程当中,我们经常会遇到求解列表的长度,即列表所含元素的数量,Python中提供了len()函数快速获取列表的长度

Languages = ['C', 'Java', ''Python]  # Languages表示一个列表
print(len(Languages))
输出为:
3

6、列表遍历

6.1 for循环遍历列表

遍历列表元素,可使用for循环对列表元素进行缩放,for后边需要有冒号,如下:

Languages = ['C', 'Java', 'Python']  # Languages表示一个列表
for Language in Languages: # 注意此处的冒号print(Language)
输出为:
C
Java
Python

注:Python是以缩进来判断与前一行代码的关系,所以一定要正确使用代码缩进!


7、创建有规律的数字列表

列表非常适合用于存储存储数字集合,且Python也提供了很多工具,能够帮助我们高效的处理数字列表。

7.1 函数range()

range()函数表示一个数值范围,range()函数的用法如下:

# number1表示起始值,number2表示终止值,但不包含此值,step表示步长
range(number1,number2,step)

如例子:

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

7.2 range()创建数字列表

可以使用**函数list()**将range()的结果直接转换为列表,如

numbers = list(range(1,6))
print(numbers)
输出为:
[1,2,3,4,5]

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

函数min()、max()、sum()分别能够求出列表中最小值、最大值、和,如:

numbers =range[1,10]
print(min(numbers))
print(max(numbers))
print(sum(numbers))
输出分别为:
0
9
45

8 列表解析

列表解析是将for循环和创建新元素合并成一行,并自动附加新元素,能够让代码更简洁。
比如,我们想求1~10之间数的平方,我们可以使用一个for循环遍历1-10之间的数,然后再求平方和,如:

# 不使用列表解析
squares = []
for value in range(1,11):square = value ** 2squares.append(square)
print(squares)
输出为:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

上述是不适用列表解析,进行求一个数的平方和再赋值给列表,分两步完成,我们使用列表解析,就可以将两步合二为一,即for循环和赋值一起操作赋值给squares列表:

# 使用列表解析
squares = [value **2 for value in range(1,11)]
print(squares)
输出为:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表解析的组成:

  • 中括号:因为是列表,所以中括号肯定是要有的
  • 表达式,用于生成存储在列表中的值
  • for循环,用于给表达式提供值

9 列表切片

列表切片能够使得我们从列表中抽取任意列表的子集,使用方法为:

# number1表示第一个元素索引(如果省略,则默认列表第一个元素)
number2表示第二个元素索引(如果省略,默认为列表末尾元素),这里同样也是不包含第二个索引的数
list[number1, number2]

使用切片例子:

  • 生成第2~4个列表元素的切片
numbers = [value for value in range(1, 11)]
print(numbers[1:4])
输出为:[2, 3, 4 ]
  • 生成前三个列表元素的切片
numbers = [value for value in range(1, 11)]
print(numbers[:3])  # 第一个索引省略,默认为第一个元素
输出为:[1,2, 3 ]
  • 生成第3个元素至列表末尾的元素的切片
numbers = [value for value in range(1, 11)]
print(numbers[2:])  # 第一个索引省略,默认为第一个元素
输出为:[3,4,5,6,7,8,9,10 ]
  • 生成列表最后三个元素的切片

这里使用的列表负数的索引,负数索引返回离列表末尾相应距离的元素

numbers = [value for value in range(1, 11)]
print(numbers[-3:])  # 第一个索引省略,默认为第一个元素
输出为:[8,9,10 ]

9.1 列表切片使用列表副本

要使用一个列表的副本,要用切片进行列表复制,这样会形成两个独立的列表。

切记不要将列表赋值给一个列表,因为这样并不能得到两个列表。

  • 使用赋值语法创建列表副本的问题

下边就将列表赋值,验证是否形成独立的列表:

squares = list(range(1, 11))print('squares原始值为:', end='')
print(squares)# 使用列表赋值
numbers_squares = squares
print('numbers_squares所有元素为:', end='')
print(numbers_squares)# 为squares列表添加数字100
squares.append(100)
print('添加数字后的squares值:', end='')
print(squares)# 为squares列表添加数字200
numbers_squares.append(200)
print('添加数字后的number_squares值:', end='')
print(numbers_squares)输出为:
squares原始值为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers_squares所有元素为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
添加数字后的squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
添加数字后的number_squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200]

可以看到,number_squares列表值中,也有数字100,说明赋值并没有形成两个独立的列表。赋值只是让Python新变量number_squares关联到包含在squares中的列表,所以这两个列表指向同一个列表。

  • 列表副本正确方法:使用切片复制列表副本
    下边的列子,创建一个1-10的数字列表,用切片进行列表复制形成两个独立的列表
squares = list(range(1, 11))print('squares原始值为:', end=' ')
print(squares)# 使用切片复制squares列表
numbers_squares = squares[:]
print('numbers_squares所有元素为:', end=' ')
print(numbers_squares)
输出为:squares原始值为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers_squares所有元素为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
为了验证确实形成了两个独立的列表,在每个列表上加数字,核实每个列表都记录了加的数字squares = list(range(1, 11))print('squares原始值为:', end='')
print(squares)# 使用切片复制squares列表
numbers_squares = squares[:]
print('numbers_squares所有元素为:', end='')
print(numbers_squares)# 为squares列表添加数字100
squares.append(100)
print('添加数字后的squares值:', end='')
print(squares)# 为squares列表添加数字200
numbers_squares.append(200)
print('添加数字后的number_squares值:', end='')
print(numbers_squares)
输出为:squares原始值为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers_squares所有元素为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
添加数字后的squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
添加数字后的number_squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 200]

可以看到,确实100和200分别加入到相应列表中。

9.2 元组

将数值不可变的列表称为元组

9.2.1 元组定义

使用圆括号来定义元组,定义元组后就可以使用索引对元组元素进行访问,如下:

numbers =(100,200)
print(numbers[0])
print(numbers[1])
输出为:100, 200

9.2.2 修改元组变量

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

numbers =(100,200)
print(numbers[0])
print(numbers[1])numbers=(200,400)
print(numbers[0])
print(numbers[1])
输出为:100, 200
200 ,400

元组其它操作和里列表操作相同,此处不再赘述

【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作相关推荐

  1. 【Python】Python实战从入门到精通之四 -- 教你使用Python中字典

    本文是Python实战–从入门到精通系列的第四篇文章: Python实战从入门到精通第一讲–Python中的变量和数据类型 Python实战从入门到精通第二讲–Python中列表操作详解 Python ...

  2. 【Python】Python实战从入门到精通之三 -- 教你使用Python中条件语句

    本文是Python实战–从入门到精通系列的第三篇文章: Python实战从入门到精通第1讲–Python中的变量和数据类型 Python实战从入门到精通第2讲–Python中列表操作详解 Python ...

  3. 【Python】Python实战从入门到精通之七 -- 教你深入理解异常处理

    本文是<Python实战从入门到精通>系列之第7篇 [Python]Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型 [Python]Python实战从入 ...

  4. 【Python】Python实战从入门到精通之六 -- 教你读取文件

    本文是<Python实战从入门到精通>系列之第6篇 [Python]Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型 [Python]Python实战从入 ...

  5. 【Python】Python实战从入门到精通之五 -- 教你使用文件写入

    本文是<Python实战从入门到精通>系列之第5篇 [Python]Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型 [Python]Python实战从入 ...

  6. python快速编程入门教程-python从入门到精通之30天快速学python视频教程

    python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv ...

  7. 【Python】Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型

    本文是Python实战–从入门到精通系列的第一篇文章: Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型 文章目录 1.变量 1.1 变量命名规则 1.2 变量名称错误 ...

  8. python基础教程视频-python从入门到精通之30天快速学python视频教程

    python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv ...

  9. python项目实战——银行取款机系统(二)

    项目实战目录 python项目实战--银行取款机系统(一) python项目实战--银行取款机系统(二) 前言 环境使用 python 3.9 pycharm 模块使用 requests random ...

最新文章

  1. stm32如何执行软复位_常见的单片机复位方式及其原理分析
  2. Python字符串常用函数详解
  3. 滴眼液的ph值与胶原纤维的粘结性(还没写完)
  4. java ee 上传文件_17.《JavaEE 学习笔记》Servlet 上传文件
  5. mysql 5.5 压力测试,mysql 压力测试
  6. Akka Notes –演员记录和测试
  7. 分布式机器学习_229页,CMU博士张昊毕业论文公布,探索机器学习并行化的奥秘...
  8. c语言程序.cpp文件,[轉]C语言程序设计基础之文件
  9. 【WPF】自定义GridLineDecorator给ListView画网格
  10. Java基础复习——访问权限
  11. 用反射实现简单的框架
  12. pandas.DataFrame.rank
  13. 127.自己开发一个 PHP 框架
  14. python爬取快手视频并批量下载
  15. 冯诺依曼机器人_人工智能 | 从智能家电到机器人,从谷歌大脑到人类
  16. vbox 虚拟机导入 无法启动 fatal:int18:boot failure
  17. eclipse配置tomcat9.0
  18. [转帖]龙芯下一代处理器微结构GS464E细节曝光
  19. java程序员必备英语词汇_java程序员常用英文单词整理
  20. [SAE]免费服务器:新浪云服务器SAE的注册与使用

热门文章

  1. 【boost】time.1 同步计数器
  2. python不用模块调用麦克风_python调用pyaudio使用麦克风录制wav声音文件的教程
  3. python的使用_python的使用
  4. 计算机类学生综合素质论文,【计算机教学论文】计算机教学中培养学生综合素质的探讨(共2338字)...
  5. Oracle 实验5 视图与索引
  6. visual studio 设计器不显示_设计模式 | Iterator设计模式
  7. 两个空间点直接距离投影公式_HBAO(屏幕空间的环境光遮蔽)
  8. java web类名_带有Java的Selenium Webdriver:使用一个命令定位具有多个类名的元素
  9. python基础学习笔记——异常处理
  10. ResNet论文笔记