Python でadict
または aを反復処理する厄介なコードを書きました。list
これは最善の方法ではなかったと感じています。
問題は、辞書を反復処理するために、これが規則であることです。
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
これを行うより良い方法はありますか?
ありがとう!