从列表中删除元素|自学生信Python(第十六天)

从列表中删除元素

Python 有从数据结构对象,如列表和字典中去除数据项的函数。

写在前面的话:
本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪)
。了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言、Python、Perl等,还要熟悉Linux系统,作为生信小白,听说Python挺简单的,于是就自学了Python,花了两天时间了解了Python的基础语法后,今天想做个练习题试试手(实践是检验真理的唯一标准)。

从列表中删除元素

有几种方法可以从列表中删除数据项,如果想删除列表中的最后一个元素,则可以使用列表的不传递参数的 pop()方法:

>>> data = [1 ,2 , 3 , 6 , 2 , 3 , 5 , 7] 
> > > da ta . pop ( ) 
7 
>>> data
 [1, 2 , 3 , 6 , 2 , 3 , 5]

注意, pop()在删除元素之前会返回该元素的值。 如果要删除列表数据中给定位置 i 处 的元素,则可以使用 pop ( ) 方法,将位置索引作为其参数:

>>> data =[1,2 , 3 ,6 , 2 ,3 , 5 , 7] 
>>> data.pop(0)
1
 >>> data
 [2, 3 , 6 , 2 , 3 , 5 , 7] 

另外,也可以使用内置函数 del(data[i]) :

>>> da t a = [ 1 , 2 , 3 , 6 , 2 , 3 , 5 , 7] 
>>> del (data[0] ) 
>>> data 
[2 , 3 , 6 , 2 , 3 , 5 , 7] 

但是,如果想删除给定值的元素(如前面 data 列表中的数字 3) ,则必须使用列表的 remove()方法:

>>> data = [1,2 ,3 , 6 , 2 , 3 , 5 , 7] 
>>> data . remove (3) 
>>> data
 [1, 2 , 6 , 2 , 3 , 5 , 7] 

你可能已经注意到了,remove()方法只删除第一次出现在列表中的 3 ,如果想删除所有为 3 的元素,则可以使用列表推导式(list comprehension) :

data = [1, 2 , 3, 6 , 2 , 3, 5 , 7]
data = [x for x in data if x != 3]
print(data)

在本例的第二行,列表 data 被重新定义为除了 3 以外,其他项与原始列表相同的列表。 注意,所有这些函数都会永久修改原始列表。 如果想保留原来的列表,则可事先创建一 个副本,或将列表推导式生成的列表采用另一个变量名 。 另外还有一些小技巧,如使用列表的切片属性除去列表中的一个或多个位置上的值:
data2 = data[:2] + data[3: ]
在此,data[2]元素将不会出现在 data2 列表中。

日常结尾:
虽然这是个小小的计算程序,但对于初学者的我来说每一次对原代码的升级改造,哪怕是读懂后的注释都感觉是一次进步提升,总之代码虽小,动手最重要!希望更多学习Python的爱好者不要像我一样眼高手低,学习编程就是要,思考,敲码,思考,敲码,敲码,再敲码!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,147评论 0 10
  • 本文为《爬着学Python》系列第九篇文章。 从现在开始算是要进入“真刀真枪”的Python学习了。之所以这么说,...
    SyPy阅读 6,418评论 0 14
  • 1.基本使用 1.1 数据类型 常用数据类型 Common Data Types 其他类型 Others 1.2 ...
    suwi阅读 5,326评论 0 3
  • 考完啦 万事OK
    六月日色如烟阅读 728评论 1 2
  • 脑袋空白,不知道要想些什么?不知要下一步要做什么?该如何去做?为什么我会这样呢?我的目标,方向在哪? 都说三十而立...
    奇迹猫阅读 2,350评论 0 1