gpt4 book ai didi

python - 从 Python 列表中删除奇数索引元素

转载 作者:太空狗 更新时间:2023-10-30 00:21:54 26 4
gpt4 key购买 nike

我试图从我的列表中删除奇数索引元素(其中零被认为是偶数)但是以这种方式删除它们是行不通的,因为它会丢弃索引值。

lst = ['712490959', '2', '623726061', '2', '552157404', '2', '1285252944', '2', '1130181076', '2', '552157404', '3', '545600725', '0']


def remove_odd_elements(lst):
i=0
for element in lst:
if i % 2 == 0:
pass
else:
lst.remove(element)
i = i + 1

我如何遍历我的列表并彻底删除那些奇数索引元素?

最佳答案

您可以使用 slice 一次删除所有奇怪的项目:

del lst[1::2]

演示:

>>> lst = ['712490959', '2', '623726061', '2', '552157404', '2', '1285252944', '2', '1130181076', '2', '552157404', '3', '545600725', '0']
>>> del lst[1::2]
>>> lst
['712490959', '623726061', '552157404', '1285252944', '1130181076', '552157404', '545600725']

您不能在迭代列表时从列表中删除元素,因为列表迭代器不会在您删除项目时进行调整。看看 Loop "Forgets" to Remove Some Items 当你尝试时会发生什么。

另一种方法是构建一个新的列表对象来替换旧的,使用 list comprehension 和提供索引的 enumerate():

lst = [v for i, v in enumerate(lst) if i % 2 == 0]

保留偶数元素,而不是移除奇数元素。

关于python - 从 Python 列表中删除奇数索引元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com