Удаление ключей словарей с помощью оператора For If в Python 3 - PullRequest
0 голосов
/ 17 мая 2018

Я чувствую себя очень глупо, спрашивая это.Как удалить ключи в словаре с помощью оператора if, который ссылается на значения.Когда я делаю это:

newdict = {"a":1,"b":2,"c":3}

for (key,value) in newdict:
    if value == 2:
        del newdict[key]
print(newdict)

Выдает эту ошибку:

line 3, in <module>
    for (key,value) in newdict:
ValueError: not enough values to unpack (expected 2, got 1)

Спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Если вам нужно удалить на основе значения элементов, используйте метод items(), или он даст ValueError.Но помните, что если вы сделаете это, это даст RuntimeError.Это происходит потому, что newdict.items() возвращает итератор, а не list.Итак, конвертируем newdict.items() в list и все должно работать.Измените приведенный выше код следующим образом -

for key,value in list(newdict.items()):
    if value == 2:
        del newdict[key]

output -

{'a': 1, 'c': 3}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...