Просто написал какой-то неприятный код, который выполняет итерацию по dict
или list
в Python. У меня такое чувство, что это не лучший способ.
Проблема заключается в том, что для итерации по dict это соглашение:
for key in dict_object:
dict_object[key] = 1
Но изменение свойств объекта по ключу не работает, если одно и то же происходит в списке:
# Throws an error because the value of key is the property value, not
# the list index:
for key in list_object:
list_object[key] = 1
Как я решил эту проблему, это написать этот неприятный код:
if isinstance(obj, dict):
for key in obj:
do_loop_contents(obj, key)
elif isinstance(obj, list):
for i in xrange(0, len(obj)):
do_loop_contents(obj, i)
def do_loop_contents(obj, key):
obj[key] = 1
Есть ли лучший способ сделать это?
Спасибо!