Удаление пары ключ / значение в словаре не работает - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь удалить некоторые пары ключ / значение из словаря, определив функцию python следующим образом:

def removekey(d, key_list):
    r = d.copy()
    for h in key_list:
        r.pop(h, None)
        #del r[h]
    return r

keys_to_delete = (0,2)    
dict_a = {0: 277.8646380131756, 1: 237.68252216827375, 2: 223.04941947616766, 3: 9.058932480795093, 4: 175.74552982744078, 5: 4.834328204426816, 6: 180.5798580318676, 7: 45144.9645079669}

new_dict_a = removekey(dict_a,keys_to_delete)

Проблема в том, что new_dict_a равен dict_a без удаления двух пар(0: значение1) и (2: значение3).Что я делаю не так?

1 Ответ

0 голосов
/ 21 ноября 2018

Это подойдет вам:

def removekey(d, key_list):
    r = d.copy()
    for key in key_list:
        r.pop(key)
    return r

keys_to_delete = (0,2)
dict_a = dict_a = {0: 277.8646380131756, 1: 237.68252216827375, 2: 223.04941947616766,
                   3: 9.058932480795093, 4: 175.74552982744078, 5: 4.834328204426816,
                   6: 180.5798580318676, 7: 45144.9645079669}

new_dict_a = removekey(dict_a,keys_to_delete)
print(new_dict_a)
print(dict_a)

Вывод:

{1: 237.68252216827375, 3: 9.058932480795093, 4: 175.74552982744078, 5: 4.834328204426816, 6: 180.5798580318676, 7: 45144.9645079669}
{0: 277.8646380131756, 1: 237.68252216827375, 2: 223.04941947616766, 3: 9.058932480795093, 4: 175.74552982744078, 5: 4.834328204426816, 6: 180.5798580318676, 7: 45144.9645079669}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...