у меня есть словарь, где ключи - это строки, а значения - списки строк. Ниже приведен пример из гораздо большего словаря, с которым я работаю. Проблема, с которой я сталкиваюсь, заключается в том, что ключи иногда появляются в значениях (т. Е. Ключ «25 -3» содержит «25 -3», и я хотел бы чтобы удалить его.
cat_map = {'11-1': ['41-4', '43-1', '11-2', '43-6'],
'11-2': ['41-4', '43-1', '11-2', '43-6'],
'11-3': [],
'11-9': [],
'13-1': [],
'13-2': [],
'15-1': [],
'15-2': [],
'17-1': [],
'17-2': [],
'17-3': [],
'19-1': [],
'19-2': [],
'19-3': [],
'19-4': [],
'21-1': [],
'21-2': ['43-2', '33-9', '39-6', '39-9', '25-3', '39-3', '39-7'],
'23-1': [],
'23-2': [],
'25-1': [],
'25-2': [],
'25-3': ['43-2', '37-1', '39-6', '25-3', '39-3'],
Я озадачен, почему ниже не работает
for k,v in cat_map.items():
for item in v:
if k == item:
del cat_map[cat_map[k].index(item)]
else:
continue
См. Ошибку (KeyError2)
KeyError Traceback (most recent call last)
<ipython-input-83-f4c2c0fde28b> in <module>
2 for item in v:
3 if k== item:
----> 4 del cat_map[cat_map[k].index(item)]
5 else:
6 continue
KeyError: 2