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

标签 python list nested tuples

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

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/

相关文章:

python - 检查对象是否是python中的列表列表?

javascript - 使用 Javascript 从嵌套的 JSON 排序索引

python - Django MySQL 条目唯一 ID 或 pk

python - GIT 钩子(Hook) -> Python -> Bash : How to read user input?

python - 使用 Python,我如何验证英国邮政编码?

c# - 在 C# 中,如果将列表中的对象添加到另一个列表中,更改第二个列表中的对象是否会更改第一个列表中的同一对象?

python - 将 sqlite3 与 Tkinter 链接

C++ - 没有匹配的构造函数

c++ - 使用嵌套 lambda 时出现奇怪的编译错误

java - jpa 2 标准 hibernate 5.2 嵌套连接