您可以使用
enumerate:
def update_condition(self, type, params): for i,condition in enumerate(self.conditions): condition_loaded = json.loads(condition) if condition_loaded['type'] == type: condition_loaded['params'] = params self.conditions[i] = json.dumps(condition_loaded)
但是,总的来说,这些东西在使用辅助函数和列表理解时会更加干净:
def helper(condition,type,params) loaded = json.loads(condition) if loaded['type'] == type: loaded['params'] = params return json.dumps(loaded) return condition...def update_condition(self, type, params): self.conditions = [helper(c,type,params) for c in self.conditions]
应该注意的是,第二种解决方案不会适当地更新列表-换句话说,如果您对此列表有其他引用,则它们不会受到影响。如果需要,可以使用切片分配很容易地进行替换:
def update_condition(self, type, params): self.conditions[:] = [helper(c,type,params) for c in self.conditions]



