从列表中删除元素|自学生信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(第十六天))