经过这周的Python课堂,第二章的知识点可以说是被彻头彻尾地讲了一下,所以我在此将上一篇发布的博客内容也加以完善。
2.1.3 列表元素的删除
在学习了列表元素的增加以后,删除列表元素的方法也可以进行类比。在实际应用中用的最多的三种方法分别是del命令pop()方法remove()方法,下面进行详细讲述。
1.使用del命令删除列表中的指定位置上的元素。

>>>a_list=[3,5,7,9,11 ]
>>>del a_list[1]#删除第二个元素
>>>a_list
>[3,7,9,11]

2.使用列表的pop()方法删除并返回指定(默认为最后一个)位置上的元素,如果给定的索引超出列表的范围,则抛出异常。

>>>a_list=list((3,5,7,9,11))
>>>a_list.pop()
11     #返回最后一个元素11
>>>a_list
[3,5,7,9]
>>>a_list.pop(1)
5      #返回第二个元素5
>>>a_list
[3,7,9]

3.使用列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。

>>>a_list=[3,5,7,9,7,11]
>>>a_list.remove(7)
>>>a_list
[3,5,9,7,11] #删除了首次出现的指定元素7

PS:在这一节需要特别注意的是:列表具有自动内存管理功能,在删除列表元素时,Python会自动对列表内存进行收缩并移动列表元素以保证所有元素之间没有空隙,增加列表元素时也会自动扩展内存并对元素进行移动以保证元素之间没有空隙。例如对于列表[1,2,1,2,1,2,1,2,1]和[1,2,1,2,1,1,1],使用for i in x: if i==1:x.remove(i)代码的逻辑不同,前者能成功删除列表中所有的“1”,而后者却并没有把所有“1”删除,只删除了一部分。
2.1.4 列表元素的访问与计数
列表作为一个存储元素的工具,当我们想要获取列表中的元素时该如何操作呢?其实很简单。使用下标直接访问列表元素,如果指定下标不存在,则抛出异常。
aLlist[下标]
使用列表对象的index()方法获取指定元素首次出现的下标,语法为index(value,[start,[stop]]),其中startstop用来指定搜索范围,前者默认为0,后者默认为列表长度。若列表对象中不存在指定元素,则抛出异常。

>>>aList
[3,4,5,7,9]
>>>aList.index(7)#获取元素7首次出现时的下标
3

我们经常看到一个列表中有多个重复的元素,如果我们想要对它们的个数进行统计,又该如何操作呢?一般地,我们使用列表对象的**count()**方法统计指定元素在列表对象中出现的次数。

>>>aList=[3,4,5,5.5,7,9,11,13,15,17]
>>>aList.count(7)  #统计元素7出现的次数
1
>>>aList.count(0)  #统计元素0出现的次数
0
>>>aList.count(8)  #统计元素8出现的次数
0

2.1.6 补充
我们已经熟悉了切片的有关操作,但是对于切片的原理其实大有考究。
切片返回的是列表元素的浅复制。所谓浅复制,是指生成一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。如果原列表中只包含整数实数复数等基本类型或元组字符串这样的不可变类型数据,一般是没有问题的。但是如果列表中包含列表之类的可变数据类型,由于浅复制时只是把子列表的引用复制到新列表中,这样的话修改任何一个都会影响另外一个。
是不是觉得这样讲述太过于繁琐,难以理解?没关系,这里给出一些比较直观的内容:




看完之后,是不是觉得对浅拷贝和深拷贝的认识又更深了一步了呢?
2.1.7 列表排序
我们已经讲了关于对列表元素操作的大部分内容了,但是还存在一种对于处理数据科学有着至关重要作用的方法:列表的排序。排序方式又可分为原地排序非原地排序两种。
使用列表对象的sort()方法进行原地排序,其支持多种不同的排序方法。

>>>aList=[3,4,5,6,7,9,11,13,15,17]
>>>import random
>>>random.shuffle(aList)  #将原列表的元素顺序打乱
>>>aList
[3,4,15,11,9,17,13,6,7,5]
>>>aList.sort()  #默认是升序排序
>>>aList.sort(reverse=True)   #降序排序
>>>aList
[17,15,13,11,9,7,6,5,4,3]
>>>aList.sort(key=lambda x:len(str(x)))  #按转换成字符串的长度排序
>>>aList
[9,7,6,5,4,3,17,15,13,11]

使用内置函数sorted对列表进行排序并返回新列表

>>>aList
[9,7,6,5,4,3,17,15,13,11]
>>>sorted(aList)    #升序排序
[3,4,5,6,7,9,11,13,15,17]
>>>sorted(aList,reverse=True)   #降序排序
[17,15,13,11,9,7,6,5,4,3]

使用内置函数reversed()对列表元素进行逆序排列并返回迭代对象

>>>aList=[3,5,7,9,11,13,15,17,19,21]
>>>newList=reversed(aList)  #返回reversed对象
>>>list(newList)   #把reversed对象转换成列表
[21,19,17,15,13,11,9,7,5,3]

综上,Python第二章的相关知识就接近尾声了,我删减了一些不是特别重要的知识点,以及省略了章末有关数据结构的选学内容。但是掌握了以上的列表处理方式之后,对今后一些复杂数据的处理和操作有着重要的帮助。在此也感谢你的浏览与支持,我也会继续锤炼自己的语言表达能力,写出更优质的文章!

Python第二章相关知识补充相关推荐

  1. Python 数据分析——Matplotlib相关知识

    Python 数据分析--Matplotlib相关知识 第五章 Matplotlib相关知识 -- 样式 文章目录 Python 数据分析--Matplotlib相关知识 前言 一.matplotli ...

  2. python 人脸识别相关知识和库的使用

    python 人脸识别相关知识和库的使用 写在前面 一.用到的基本库 二.常用的库简单使用 1.skimag.io 2.sys.argv 三.补充知识点 1.相对路径与绝对路径: 2.numpy.me ...

  3. 简学Python第二章__巧学数据结构文件操作

    Python第二章__巧学数据结构文件操作 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表 元祖 索引 字典 序列 文件操作 编码与文件方法 本站开始将引入一个新的概 ...

  4. (连载)边喝咖啡边学Unity——第二章 预备知识体系

    第二章 预备知识体系 --本章涉及空间数学.解析几何.线性代数.计算机图形学.算法.数据结构等众多基础学科.同上一章相比,虽然枯燥,但是绝不能称为废话之章,即使粗略的看一遍,也比直接跳过来的好,详细地 ...

  5. Python第二章课后总结

    最近的教学进度进入了第二章,这一章主要讲述了Python中常用的序列结构:列表.元组.字典.字符串.集合等.通过这些序列的学习在今后可以有效实现一些复杂的数据结构和模拟基本操作.那么接下来就给出我个人 ...

  6. Python 第二章-列表和元组

    第二章-列表和元组 2.0       在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推 ...

  7. 计算机第二章基础知识习题,计算机基础知识习题.docx

    文档介绍: 第一章计算机基础知识****题一.单项选择题2.最先实现存储程序的计算机是B.A.ENIACB.EDSACC.EDVACD.VNIVA4.开机时显示如下出错信息的含义是B.Non-syst ...

  8. 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|第二章--关系数据库知识整理和课后习题答案

    该系列的博客都是基于<数据库系统概论>第五版王珊一书 前提: 因为最近要升学的原因,再加上重温数据库部分内容,所以整理一份比较详细且重点的笔记.适合有考研升学需求的人收藏 -------- ...

  9. 【电路】【扩展】锂电池相关知识补充

    锂电池相关知识 因为看到别人做平衡车直接使用18650电池供电,整整齐齐地码了3颗在PCB上感觉十分优雅,所以自己也想要用18650做一个,奈何对这方面一无所知,索性把相关知识都学一遍吧. 因为网上资 ...

最新文章

  1. mongodb 设置远程可以访问
  2. php和java融合_Java上的PHP,真的融合
  3. 解决Jenkins Email Extension Plugin发送邮件失败
  4. android之SharedPreferences
  5. junit框架——单元测试
  6. HDU 1233 - 还是畅通工程
  7. 图解linux文件系统,linux系统的基本构成和文件系统的结构(配图解)
  8. lseek()函数详解
  9. 江西交通职业技术学院计算机网课,第16章-桥墩计算_江西交通职业技术学院:桥涵工程(高职、精品课程)_ppt_大学课件预览_高等教育资讯网...
  10. 计算机数学英语基础,2020考研计算机数学复习四大基本方向
  11. Cisco *** Client 报错问题
  12. readhat 远程可视化桌面_手机vnc远程桌面,手机vnc远程桌面,使用配置详解
  13. 危化品企业双预防机制数字化建设综合解决方案
  14. 视频无损编辑、截取工具
  15. 海量数据处理-Python
  16. 顾城其实很可怜 舒婷回忆:他一辈子都在为钱发愁
  17. MMM互助社区是不是真的,有没有风险
  18. python怎么消除警告_Python-警告处理
  19. 计算思维与数据科学 K-Means聚类模型信用卡用户风险评估 python连接数据库来处理数据
  20. Linux:刻录u盘,格式化u盘

热门文章

  1. 如何把获取的JSON数据插入到MySQL中
  2. python安装c语言库_C语言扩展Python模块
  3. 数字媒体发布管理系统DMS(Digital Media System)
  4. python代码是什么意思中文翻译_python什么意思中文翻译
  5. 0x80073712_Win10系统更新老失败,提示错误代码0x80073712,这种问题应该如何解决?...
  6. 虚拟物品价格是由什么决定的
  7. 像在木雕中,一些吉祥化的元素
  8. Postman高级功能Mock Server
  9. 中消协:预付费卡捆绑金融信贷成2018年投诉热点
  10. 标北京大兴企业代理记账收费