У меня есть список, в котором есть списки со словарями. Я пытаюсь проверить одно из значений ключа внутри словаря, и если это попытка, я удаляю этот список из списка. Я немного запутался со слоями списков и словарей, которые здесь происходят, и я думал, что у меня есть хорошее решение, но, похоже, это мешает индексу цикла for, когда я делаю это так, как я думал, будет работать, а затем удаляется только первое совпадение.
Вот пример того, что у меня происходит.
master_list = [
{"irrelevant_key": "irrevelant_value",
"releveant_key":
[{"first_value": "first_key"}, {"problem_key": 0}],
[{"second_value": "second_key"}, {"problem_key": 1}]
}]
for index, key in enumerate(master_list):
for item in master_list[index]["relevant_key"]:
if item[1]["problem_key"] == 0:
master_list[index]["relevant_key"].remove(item)
Поэтому я уверен, что есть более элегантный и лучший способ сделать это с каким-то пониманием, но я заметил, что когда я удаляю элемент, остальные элементы возвращаются на один, поэтому итерация не работает. как я и ожидал.
Вы всегда можете создать еще одну копию своего списка и отфильтровать исходное значение. Я действительно не думаю, что удаление на лету - хорошая практика.
coderhelper.com/questions/3485475/… Или вы можете использовать что-то вроде этого, создать список только для чтения и выполнять действия на его основе.