당신은 사용할 수를 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]
+1. 돌연변이 돌연변이와 돌연변이 돌연변이에 대한 명확한 설명 (3 페이지짜리 글을 쓰지 않아도 보통 이런 경우에 끝납니다.) – abarnert
@abarnert - 의견에 감사드립니다. 일관되게 좋은 답변을 쓰는 사람이 좋은 메모를 남기면 언제나 친절합니다 :) – mgilson