李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习,或点击「极客起源」公众号下方的「编程思想」 >  「Python编程思想」 菜单开始学习。

-----------正文-----------

在前文已经提到,列表与元组最大的区别在于:元组是不可改变的,列表是可以改变的。元组支持的操作,列表基本上都支持;列表支持对元素的修改,而元组则不支持。从这个角度来看,可以认为列表是增强版的元组。尽管大多数情况可以使用列表来代替元组,但如果程序不需要修改列表中的元素时,使用元组代替列表则会更安全。1. 创建列表和元组在前面已经介绍了使用方括号语法创建列表,其实Python 还提供了一个内置的list()函数来创建列表,list()函数可用于将元组、区间(range)等对象转换为列表。示例代码:创建列表.py

a_tuple = ('极客起源', 40, 123.5, True)# 将元组转换成列表a_list = list(a_tuple)print(a_list)   # ['极客起源', 40, 123.5, True]# 使用range()函数创建区间(range)对象a_range = range(1, 20)print(a_range)      # range(1, 20)# 将区间转换成列表b_list = list(a_range)# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]print(b_list)# 创建区间时还可以指定步长c_list = list(range(4, 20, 2))print(c_list) # [4, 6, 8, 10, 12, 14, 16, 18]

上面程序中使用list()函数将1个元组转换为列表。然后又将一个区间(range) 对象转换为列表,该行代码转换的区间为range(1, 20),该区间的默认步长是1,该区间共包括1到19共19个值(注意:range()函数创建的区间是半闭半开的,所以不包括20)。因此程序输出b_ _list 时将看到如下结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

最后将range(4, 20,2)转换为列表,该区间是从4到20 (不包括20)且步长为2的数值,因此程序输出c__list时将看到如下结果:

[4, 6, 8, 10, 12, 14, 16, 18]

与list()对应的是Python 也提供了一个tuple()函数,该函数可用于将列表、区间(range)等对象转换为元组。示例代码:创建元组.py

a_list = ['公众号:极客起源', 120, False]# 将列表转换成元组a_tuple = tuple(a_list)print(a_tuple)      # ('公众号:极客起源', 120, False)# 使用range()函数创建区间(range)对象a_range = range(1, 10)print(a_range) # range(1, 10)# 将区间转换成元组b_tuple = tuple(a_range)print(b_tuple)      #(1, 2, 3, 4, 5, 6, 7, 8, 9)# 创建区间时还指定步长c_tuple = tuple(range(4, 20, 2))print(c_tuple)      # (1, 2, 3, 4, 5, 6, 7, 8, 9)

2. 向列表添加元素(append)为列表添加元素可以使用列表的append()方法,该方法会把传入的参数值追加到列表的最后。append()方法既可接收单个值,也可接收元组、列表等,但该方法只是把元组、列表当成单个元素,这样就会形成在列表中嵌套列表、嵌套元组的情形。示例代码:向列表添加元素.py

a_list = ['公众号:极客起源', 200, 12]# 追加元素a_list.append('输入160442获取《Python编程思想》')# ['公众号:极客起源', 200, 12, '输入160442获取《Python编程思想》']print(a_list)a_tuple = (44.3, 100)# 追加元组,元组被当成一个元素a_list.append(a_tuple)# ['公众号:极客起源', 200, 12, '输入160442获取《Python编程思想》', (44.3, 100)]print(a_list)# 追加列表,列表被当成一个元素a_list.append(['x', 'y'])# ['公众号:极客起源', 200, 12, '输入160442获取《Python编程思想》', (44.3, 100), ['x', 'y']]print(a_list)

从上面代码可以看出,为列表追加另一个列表时,Python 会将被追加的列表当成1个整体的元素,而不是追加目标列表中的元素。3. 向列表添加元素(extend)在上一节讲了append()方法,但这个方法只会将列表当成一个整体的元素添加,如果希望不将被追加的列表当成一个整体, 而只是追加列表中的元素,则可以使用列表的extend()方法。示例代码:向列表添加元素(extend).py

b_list = ['x', 120]# 追加元组中的所有元素b_list.extend(("极客起源", "蒙娜丽宁"))print(b_list)       # ['x', 120, '极客起源', '蒙娜丽宁']# 追加列表中的所有元素b_list.extend(['A', 'B', 'C'])print(b_list)   # ['x', 120, '极客起源', '蒙娜丽宁', 'A', 'B', 'C']# 追加区间中的所有元素b_list.extend(range(99, 104))print(b_list) # ['x', 120, '极客起源', '蒙娜丽宁', 'A', 'B', 'C', 99, 100, 101, 102, 103]

4. 向列表插入元素(insert)追加元素是指在列表最后插入元素,而如果希望在列表中间插入元素,则可以使用列表的insert()方法,使用insert()方法时要指定将元素要插入的位置。示例代码:向列表插入元素(insert).py

c_list = list(range(1, 5))print(c_list) # [1, 2, 3, 4]# 在索引位3的位置插入一个字符串c_list.insert(3, '极客起源')print(c_list) # [1, 2, 3, '极客起源', 4]# 在索引为2处插入一个元组(将字符串转换为元组),元组被当成一个元素c_list.insert(2, tuple('蒙娜丽宁'))print(c_list)   # [1, 2, ('蒙', '娜', '丽', '宁'), 3, '极客起源', 4]

5. 删除列表元素删除列表元素需要使用del语句。del 语句是Python的一种语句,专门用于执行删除操作,不仅可用于删除列表的元素,也可用于删除变量等操作。使用del语句既可删除列表中的单个元素,也可直接删除列表的中间一段。示例代码:删除列表元素.py

a_list = ['Python', 200, -12.4, (30, 12,5), 'UnityMarvel']# 删除第3个元素del a_list[2]print(a_list)       # ['Python', 200, (30, 12, 5), 'UnityMarvel']# 删除第2个到第4个(不包含)元素del a_list[1: 3]print(a_list)       # ['Python', 'UnityMarvel']b_list = list(range(1, 10))# 删除第3个到倒数第2个(不包含)元素,间隔为2del b_list[2: -2: 2]print(b_list)       # [1, 2, 4, 6, 8, 9]# 删除第3个到第5个(不包含)元素del b_list[2: 4]print(b_list)       # [1, 2, 8, 9]

使用del语句不仅可以删除列表元素,也可以删除普通变量。示例代码:

name = 'UnityMarvel'print(name)         # UnityMarvel# 删除name变量del name#print(name)        # 抛出异常

上面的代码删除了name变量,因此接下来访问name变量时将会抛出异常(引发NameError错误)。除使用del语句之外,Python 还提供了remove()方法来删除列表元素,该方法并不是根据索引来删除列表元素的,而是根据元素本身来执行删除操作的。该方法只删除第1个找到的元素,如果找不到该元素,该方法将会抛出异常(引发ValueError错误)。示例代码:

c_list = [20, 'Python', 30, -40, 'Node.js', 6.4]# 删除第一次找到的30c_list.remove(30)print(c_list) # [20, 'Python', -40, 'Node.js', 6.4]# 删除第一次找到的'Node.js'c_list.remove('Node.js')print(c_list) # [20, 'Python', -40, 6.4]# 清空列表c_list.clear()print(c_list) # []

在这段代码的最后,使用列表的clear方法清空了整个列表。6. 修改列表元素列表的元素相当于变量,因此程序可以对列表的元素赋值,这样即可修改列表的元素。私立代码:修改列表元素.py

a_list = [True, False, -3.14, 'Python', 'UnityMarvel']# 对第3个元素赋值a_list[2] = 2.71828print(a_list)   # [True, False, 2.71828, 'Python', 'UnityMarvel']# 对倒数第1个元素赋值a_list[-1] = "超平台开发系统"print(a_list)   # [True, False, 2.71828, 'Python', '超平台开发系统']

上面代码通过索引对列表元素赋值,程序既可使用正数索引,也可使用负数索引。此外,程序也可通过分片对列表其中一部分赋值, 在执行这个操作时并不要求新赋值的元素个数与原来的元素个数相等。这意味着通过这种方式既可为列表增加元素,也可删除列表中的元素。示例代码:

b_list = list(range(1, 5))print(b_list)   # [1, 2, 3, 4]# 将第2个到第4个(不包含)元素赋值为新列表的元素b_list[1: 3] = ['x', 'y']print(b_list)   #[1, 'x', 'y', 4]

如果对列表中空的分片赋值,就变成了为列表插入元素。示例代码:

# 将第3个到第3个(不包含)元素赋值为新列表的元素,也就是插入操作b_list[2: 2] = ['t1', 't2']print(b_list) # 1, 'x', 't1', 't2', 'y', 4]

如果将列表其中一段赋值为空列表,就变成了删除列表中的元素。示例代码:

# 将第3个到第6个(不包含)元素赋值为空列表,相当于删除操作b_list[2: 5] = []print(b_list) # [1, 'x', 4]

对列表使用分片语法赋值时,不能使用单个值。如果使用字符串赋值,Python 会自动把字符串当成序列处理,其中每个字符都是一 个元素。实例代码:

# Python会自动将str分解成序列b_list[1: 3] = 'hello'print(b_list) # [1, 'h', 'e', 'l', 'l', 'o']

在使用分片语法赋值时,也可指定step参数。但如果指定了step参数,则要求所赋值的列表元素个数与所替换的列表元素个数相等。示例代码:

c_list = list(range(1, 10))# 指定step为2,被赋值的元素有4个,因此用于赋值的列表也必须有4个元素c_list[2: 9: 2] = ['a', 'b', 'c', 'd']print(c_list) # [1, 2, 'a', 4, 'b', 6, 'c', 8, 'd']

往期回顾:Python编程思想(1):Python简介与开发环境搭建Python编程思想(2):Python主要特性、命名规则与代码缩进Python编程思想(3):数字及其相关运算Python编程思想(4):字符串类型Python编程思想(5):列表与元组的基础知识Python编程思想(6):格式化字符串

python 清空所有对象_Python编程思想(7):列表的增删改操作相关推荐

  1. python中排序从小到大_Python实现对特定列表进行从小到大排序操作示例

    本文实例讲述了Python实现对特定列表进行从小到大排序操作.分享给大家供大家参考,具体如下: 1.在系统内新建文件rizhireplacelist.txt root@kali:~# cd pytho ...

  2. python连接sql数据库_python连接sql server数据库实现增删改查

    简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...

  3. python list存储对象_python List 对象

    从源码中可以看到,PyListObject中存储数据用的是PyObject **ob_item, 是当作Vector类似的方法. Items must normally not be NULL,这句是 ...

  4. python实现四位一并法_python 全栈开发,Day4(列表切片,增删改查,常用操作方法,元组,range,join)...

    一.列表 列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = ['alex',123,Ture,(1,2,3,'wusir') ...

  5. python列表增删改查_Python列表List增删改查、拷贝

    列表的介绍 一.什么是列表 列表是可以存储不同类型数据的有序.可变的存储容器. 二.列表的格式 定义列的格式: [元素1,元素2,元素3,...,元素n] 定义变量名为arr的列表 arr=[1,'你 ...

  6. python中的切片能否修改元祖_Python列表的增删改查和元祖

    一.定义列表 1.names = ['mike','mark','candice','laular'] #定义列表 2.num_list = list(range(1,10)) #range生成1-1 ...

  7. python循环语句嵌套for range_python的列表的增删改查,元组的嵌套,及for循环,range的使用...

    列表 列表是一个可变的数据类型,有[]表示,每一项元素用逗号隔开,里面什么都能装,能装对象的对象,可以装大量的数据 列表的索引和切片 列表和字符串一样,也有索引和切片,区别就是字符串切出来的是字符串, ...

  8. python class 是否存在某个变量_Python编程思想(29):使用type()函数定义类

    ----------支持作者请转发本文-----------李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函 ...

  9. python 静态方法_Python编程思想(25):方法深度解析

    -----------支持作者请转发本文-----------李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要 ...

最新文章

  1. 如何从系统层面优化深度学习计算?
  2. .NET和UNITY版本问题
  3. Linux 中su 与su - 的区别
  4. 安装android sdk,后出现导出错误,提示命令行找不到解决方案
  5. wince2秒快速启动TOC分析
  6. Linux(CentOS)挂载NTFS格式的U盘、移动硬盘
  7. 数据结构之图:用图解决案例,Python代码实现——24
  8. 顺序表的插入删除查找遍历
  9. 创建mysql制定字符集语句_创建数据库指定字符集语句
  10. 每期一词:catastrophe
  11. 微积分:如何理解多元函数可微和全微分?
  12. office 中墨迹书写工具_word2016 墨迹书写 word2016墨迹书写工具
  13. DT算法(暗像元法)在C6.1中的改进:Aerosol Dark Target (10km 3km) Collection 6.1 Changes
  14. Vue.js:从安装到快速创建脚手架项目,解决刚创建完出现的parsing error:No Bable config file detected报错
  15. 80后程序员感慨中年危机,Java程序员最新职业规划,面试篇
  16. win10系统多桌面切换方法及切换快捷键详细介绍
  17. 基于动态空间滤波的受损EEG信号的鲁棒性学习
  18. java 线程安全和不安全
  19. 如何实现游戏中的段位排行榜?
  20. 稳定dns服务器,国内DNS服务器推荐 选对了让你网速开挂

热门文章

  1. 数据中心机房供电需求有哪些?供配电系统如何布置??
  2. 了解这些电源知识能提高机房供电可靠性
  3. python数据分析pandas_Python数据分析之 pandas汇总和计算描述统计
  4. 平流式沉淀池计算例题_平流式沉淀池计算例题
  5. Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略
  6. DayDayUp:2019.12.30吴晓波2020年终秀演讲《预见2020:来海边,拾起信心》读后有感
  7. Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)
  8. ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能
  9. NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用
  10. 03_4_this关键字