Python 中按索引从列表中删除元素
使用 del 语句按索引从列表中删除元素,例如 del my_list[2]。 del 语句可用于按索引从列表中删除元素,也可用于从列表中删除切片。
my_list = ['zero', 'one', 'two', 'three']
print(my_list.index('two')) # ?️ 2
# ?️ remove list element by index
del my_list[2]
print(my_list) # ?️ ['zero', 'one', 'three']
# ?️ remove slice of list elements
del my_list[0:2]
print(my_list) # ?️ ['three']
第一个示例使用 del 语句从列表中删除一个元素。
Python 索引是从零开始的。 列表中第一项的索引为
0
,第二项的索引为1
,最后一项的索引为-1
。
del
语句用于通过索引而不是值从列表中删除项目。
我们还可以使用 del
语句从列表中删除一个切片。
my_list = ['zero', 'one', 'two', 'three']
print(my_list[0:2]) # 👉️ ['zero', 'one']
del my_list[0:2]
print(my_list) # 👉️ ['two', 'three']
列表切片的语法是 my_list[start:stop:step]
,其中 start 索引是包含的,stop 索引是不包含的。
该示例删除了索引 0 和 1 处的列表项。请注意,索引 2 处的元素未被删除,因为停止索引是独占的。
或者,我们可以使用
list.pop()
方法。
使用 list.pop()
方法按索引从列表中删除元素,例如 my_list.pop(0)
。 list.pop
方法删除列表中给定位置的项目并将其返回。
my_list = ['zero', 'one', 'two', 'three']
my_list.pop(0)
# 👇️ ['one', 'two', 'three']
print(my_list)
如果未指定索引,则 pop()
方法移除并返回列表中的最后一项。
my_list = ['zero', 'one', 'two', 'three']
my_list.pop()
# 👇️ ['zero', 'one', 'two']
print(my_list)
pop
方法和 del
语句之间的主要区别是 list.pop()
返回删除的值。
my_list = ['zero', 'one', 'two', 'three']
print(my_list.pop(0)) # 👉️ zero
或者,我们可以使用列表切片。
当我们不想改变原始列表,而是想创建一个不包含特定索引处的项目的新列表时,这尤其有用。
my_list = ['zero', 'one', 'two', 'three']
idx = 2
new_list = my_list[0:idx] + my_list[idx+1:]
print(new_list) # 👉️ ['zero', 'one', 'three']
我们使用加法 +
运算符来组合两个列表切片。
# 👇️ ['zero', 'one', 'two']
print(['zero', 'one'] + ['two'])
第一个切片从索引 0 开始,一直到但不包括指定索引处的项目。
my_list = ['zero', 'one', 'two', 'three']
idx = 2
print(my_list[0:idx]) # 👉️ ['zero', 'one']
print(my_list[idx+1:]) # 👉️ ['three']
new_list = my_list[0:idx] + my_list[idx+1:]
第二个切片从指定的索引 + 1 开始,因为我们不想在新列表中包含该索引处的项目。
在列表切片中,
start
索引是包含的,stop
索引是不包含的。
这种方法不会从列表中删除元素,而是创建一个新列表,但在指定索引处没有该元素。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。