gpt4 book ai didi

python - 查找列表并从列表中删除列表

转载 作者:行者123 更新时间:2023-11-30 23:28:04 26 4
gpt4 key购买 nike

我一直在尝试找到一些可以完成我想做的事情的帖子,但我找不到任何东西。

我已经得到了这个列表,即

rows =
[['Jan 31', ' 2014 19:48:30.096606000', '0x10', '0x00000000', '0x0f7864ef', '0x0f7864f1', '', 'blahblah', 'other \n'],
['Jan 31', ' 2014 19:48:30.829329000', '0x10', '0x00000000', '0x0f920978', '0x0f92097a', '', 'blahblah', 'anotherr \n']]

我需要找到并从第 5 个项目搜索的列表中删除一个列表,如下所示:

search == '0x0f7864ef'
if any(e[4] == search for e in rows):

如果搜索到的变量存在,那么我得到一个 True,但我不知道如何从“行”中删除它。执行类似 rows.remove(e) 的操作只会返回错误

我尝试循环遍历一组并在找到时删除,但出现错误。另外,我宁愿不必循环遍历集合/列表。这是我尝试过的:

>>> a = {( '1','da','vi' ), (2,'be','vi') }
>>> for item in a:
... if 'da' in item:
... a.remove(item)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: Set changed size during iteration
>>> a
set([(2, 'be', 'vi')])

尽管该项目已被删除,我还是收到了错误...

谢谢!

最佳答案

只需创建一个包含已过滤项目的新列表,如下所示:

new_list = [item for item in rows if search not in item]

这是一个列表理解,它是一个计算结果为列表的表达式。编写上述代码的较长方法是在 for + if 循环中,如下所示:

new_list = []
for item in rows:
if search not in item:
new_list.append(item)

修改正在循环的列表是非常糟糕的做法,这就是为什么标准做法是创建一个新列表;使用列表理解或更传统的循环。

关于python - 查找列表并从列表中删除列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810482/

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