Python代码阅读(第70篇):删除列表一边的n个元素
2021-11-01 本文已影响0人
FelixZzzz
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码实现了去除列表左边或者右边n
个元素的功能。
本篇阅读的代码片段来自于30-seconds-of-python。
drop
def drop(a, n = 1):
return a[n:]
# EXAMPLES
print(drop([1, 2, 3])) # [2, 3]
print(drop([1, 2, 3], 2)) # [3]
print(drop([1, 2, 3], 42)) # []
drop
函数接收一个列表,和一个拟删除元素数量n
,返回删除左边指定数量元素后的列表。
函数使用分片的方法,直接从索引为n
的元素(第n+1
个元素)开始,返回新的列表。
drop_right
def drop_right(a, n = 1):
return a[:-n]
# EXAMPLES
print(drop_right([1, 2, 3])) # [1, 2]
print(drop_right([1, 2, 3], 2)) # [1]
print(drop_right([1, 2, 3], 42)) # []
drop_right
函数和上个函数类似,但是在分片的时候,使用了负数,a[:-n]
相当于a[:len(a)-n]
,这样列表切片就会舍弃最右边的n
个元素。
例如第一个示例drop_right([1, 2, 3])
中,a = [1, 2, 3]
,len(a) = 3
,n = 1
。函数返回a[:len(a)-n]
,即a[:2]
,即[1, 2]
舍弃了右边n
个元素。