2012-11-26 6 views
0

이 코드는 어떻게 단순화 할 수 있습니까? 그것은 질문입니다.목록 단순화

stat_keys.append(self.request.get("stat_one")) 
    stat_keys.append(self.request.get("stat_two")) 
    stat_keys.append(self.request.get("stat_three")) 
    stat_keys.append(self.request.get("stat_four")) 

답변

3
stat_keys += [self.request.get(k) for k in ('stat_one', 'stat_two', 'stat_three', 'stat_four')] 

또는

stat_keys += map(self.request.get, ('stat_one', 'stat_two', 'stat_three', 'stat_four'))) 

또는

map(stat_keys.append, map(self.request.get, ('stat_one', 'stat_two', 'stat_three', 'stat_four'))) 

은 그래도 첫 번째 제안. 발전기 식 .extend()

1

어려움은 변수 중 하나가 무엇인지 모른 채 대답 만하는 방법이에 대한 :

for stat in ('stat_one', 'stat_two', 'stat_three', 'stat_four'): 
    stat_keys.append(self.request.get(stat)) 

을 또는 발전기 표현 사용 :

[stat_keys.append(self.request.get(stat)) for stat in ('stat_one', 'stat_two', 'stat_three', 'stat_four')] 
1

변경 :

stat_keys.extend(self.request.get(stat) for stat in('stat_one', 'stat_two', 'stat_three', 'stat_four')) 
+0

stat_keys' 우리가 문제의 정보에서 모르는'extend'을 지원'이라고 가정. – aquavitae

0
s_list = [ "stat_one", "stat_two", "stat_three", "stat_four" ] 
[ stat_keys.append(self.request.get(s)) for s in s_list ]