元素的生于死(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]引发异常
方法有很多,更主要的是看环境,来选择方法