gpt4 book ai didi

python - 从列表python中删除两个连续的元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:02 24 4
gpt4 key购买 nike

从列表中删除连续元素时出现问题。例如我有一个列表;

['aaaaa', '@someword', '@otherword','bbbb',...]

我想从列表中删除具有@char 的元素。

a = ['aaaaa', '@someword', '@otherword','bbbb']
for word in a:
if '@' in word:
print("found @ in word :" +word)
a.remove(word)

输出是; (只找到第一个元素,跳过第二个。)

found @ in word :@someword

如果我在这个元素之间添加一些值;

a = ['aaaaa', '@someword', 'qqqq', '@otherword','bbbb']

它捕获了其中的两个;

found @ in word :@someword
found @ in word :@otherword

我调试代码,如果有连续的一些词包括@char,删除函数跳过第二个,因为删除过程后索引发生变化。

我怎样才能删除这些词?

最佳答案

您可以使用列表理解来根据条件过滤掉元素:

>>> original = ['aaaaa', '@someword', '@otherword','bbbb']
>>> filtered = [item for item in original if '@' not in item]
>>> filtered
['aaaaa', 'bbbb']

或替换它们:

>>> replaced = [item if '@' not in item else '' for item in original]
>>> replaced
['aaaaa', '', '', 'bbbb']

参见 documentation获取更多信息。希望对您有所帮助!

关于python - 从列表python中删除两个连续的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54903875/

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