您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中遍历列表时修改列表的值?

在Python中遍历列表时修改列表的值?

您可以使用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]
python 2022/1/1 18:44:16 有315人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶