gpt4 book ai didi

python - 从嵌套的元组列表中删除元组

转载 作者:行者123 更新时间:2023-11-28 21:44:38 25 4
gpt4 key购买 nike

我有一个嵌套列表作为元组的嵌套列表,如下所示,

nest_list= [[('aa','1'),('bb','2')],[('cc','3'),('bb','4')],[('dd','5'),('dd','6')]]

我需要解析列表并删除包含值 'bb' 的元组,以便我的最终嵌套列表如下所示

 final_nest_list= [[('aa','1')],[('cc','3')],[('dd','5'),('dd','6')]]

我尝试使用嵌套的“for 循环”,但似乎效率不高。在 python 中是否有任何“递归方式”执行此操作,以便即使嵌套列表的深度发生变化也应该起作用。

最佳答案

可以很容易地使用列表理解来删除不需要的项目,但考虑到嵌套的深度可能会有所不同,这里有一种递归的方法:

nest_list= [[('aa','1'),('bb','2')],[('cc','3'),('bb','4')],[('dd','5'),('dd','6')]]


def remove_items(lst, item):
r = []
for i in lst:
if isinstance(i, list):
r.append(remove_items(i, item))
elif item not in i:
r.append(i)
return r

>>> nest_list= [[('aa','1'),('bb','2')],[('cc','3'),('bb','4')],[('dd','5'),('dd','6')]]
>>> remove_items(nest_list, 'bb')
[[('aa', '1')], [('cc', '3')], [('dd', '5'), ('dd', '6')]]

>>> nest_list= [[[('aa','1'),('bb','2')],[('cc','3'),('bb','4')]],[('dd','5'),('dd','6')]]
>>> remove_items(nest_list, 'bb')
[[[('aa', '1')], [('cc', '3')]], [('dd', '5'), ('dd', '6')]]

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

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