У меня есть два dicts:Удаление вложенных элементов Dict с Dict понимания
blocked = {'-5.00': ['121', '381']}
all_odds = {'-5.00': '{"121":[1.85,1.85],"381":[2.18,1.73],"16":[2.18,1.61],"18":\
[2.12,1.79]}'}
Я хочу сначала проверить, возвращает ли .keys()
Comparision (==
) True
, здесь он делает (как -5.00
), то я хочу, чтобы удалить все позиции от all_odds
, у которой есть ключ, указанный в blocked.values()
.
Для вышесказанного следует привести:
all_odds_final = {'-5.00': '{"16":[2.18,1.61],"18": [2.12,1.79]}'}
Я попытался for loop
:
if blocked.keys() == all_odds.keys():
for value in blocked.values():
for v in value:
for val in all_odds.values():
val = eval(val)
if val.has_key(v):
del val[v]
, которые вы знаете, это очень некрасиво и это не работает должным образом еще.
Вы хотели иметь вложенный dict, а не строку, правильно? – Jared
@ Исправлено. – nutship
Но, похоже, вы используете 'eval', что означает, что вы хотите, чтобы это была строка? Измените свой вопрос соответствующим образом. :) –