元素的生于死(python里元素获取与删除)

今天被个元素烦着了,找了下网上也没啥直接详细的方法

就总结了下今天找过的方法,分享些简单的方法

直接放干货

删除篇

要删除列表元素的首次出现,只需要list.remove

>>> a = [‘a’, ‘b’, ‘c’, ‘d’]

>>> a.remove(‘b’)

>>> print a

[‘a’, ‘c’, ‘d’]

 

这个操作主要用于,你知道需要删除的元素

 

另外,还可以这么使用

>>> a = [10, 20, 30, 40, 20, 30, 40, 20, 70, 20]

>>> a = [x for x in a if x != 20]

>>> print a

[10, 30, 40, 30, 40, 70]

 

怎么样是不是很方便

 

同样的还有一个方法

>>>a = [0, 1, 0, 1, 2, 1, 3, 1, 4, 1]

>>>while a.count(1) > 0:

a.remove(1)

这样就可的到[0, 0, 2, 3, 4]

 

如果要删除其他所有元素的方法,只保留想要元素,就可以使用filter函数

>>>a = [1,2,2,3,4,5]

>>>a = list(filter(lambda x: x!= 2, a))

这个方法主要适用与知道需要保留的元素这种情况

当然还有更多的方法:

 

del语句删除元素:

del d[key]:

不过这样会改变原有的dict,需要复制dict

def removekey(d, key):

r = dict(d)

del r[key]

return r

注意:del方法会将constant time改成linear time,主要适用与一些小的dicts

pop

>>>lol = {“hello”:”gdbye”}

>>>lol.pop(“hello”)

‘gdbye’

 

 

同样的pop也会改变dict,想要保留原件,就必须进行复制

 

 

获取篇

 

最简单粗暴的获取方法some_list[-n]

 

some_list[-n]可以获取列表倒数第n个元素。some_list[-1]获取最后一个元素,some_list[-2]获取倒数第二个,一直到some_list[-len(some_list)],这个给你提供了第一个元素

 

>>> some_list = [1, 2, 3]

>>> some_list[-1] = 5 # Set the last element

>>> some_list[-2] = 3 # Set the second to last element

>>> some_list

[1, 3, 5]

 

不过需要注意的是,若some_list为空,会导致some_list[-1]引发异常

 

方法有很多,更主要的是看环境,来选择方法