首页 > 解决方案 > 从 DEEP 嵌套列表中删除子列表

问题描述

我正在为一些嵌套列表而苦苦挣扎。简而言之,在列表列表中,我有一些包含多个值的列表

biglist = [[['strings', '632'], ['otherstrings', 'hey']],[['blabla', '924'], ['histring', 'hello']]]

从这个嵌套列表中,我想删除'hello'出现字符串的子列表。我试过这个:

for sub_line in big_list:
    if 'hello' in sub_line:
        big_list.remove(sub_line)

现在,如果我在循环外打印新big_list列表,我会得到旧列表,因为我没有将更新的列表分配给新列表。但是,如果我分配给一个新列表,例如:

for sub_line in big_list:
    if 'hello' in sub_line:
        updated_list = big_list.remove(sub_line)
print(updated_list)

我得到一个AttributeError: 'NoneType' object has no attribute 'remove'.

那么这有什么问题呢?我不能使用列表索引,因为我的真实列表很大,而且目标值并不总是在同一个地方。我已经检查了其他问题,但没有任何效果。谢谢你们!

标签: python-3.xnested-lists

解决方案


以下对我有用。您需要从列表中删除 sub_line (不是行)。

big_list = [['strings', '632', 'otherstrings', 'hey'],['blabla', '924', 'histring', 'hello']]

print(big_list)
for sub_line in big_list:
    if 'hello' in sub_line:
        big_list.remove(sub_line)
print(big_list)

推荐阅读