我刚写了一些很糟糕的代码,用 Python 遍历了一个字典或列表。我感觉这应该不是最好的方法。
问题在于,要遍历字典,需要按照以下约定:
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
有更好的方法吗?
谢谢!
xrange()
(这也没问题),但结果是相同或非常相似的。+1 - Tadeckreturn obj if isinstance(obj, dict) else xrange(len(obj))
,对吗? - tobias_k