【发布时间】:2012-09-01 18:43:29
【问题描述】:
刚刚编写了一些讨厌的代码,在 Python 中迭代 dict 或 list。我有一种感觉,这不是最好的方法。
问题是为了迭代一个字典,这是惯例:
for key in dict_object:
dict_object[key] = 1
但是如果在一个列表上做同样的事情,通过key修改对象属性是行不通的:
# 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
有没有更好的方法来做到这一点?
谢谢!
【问题讨论】:
标签: python list dictionary loops