2014-12-25 2 views
0

나는 어떤 문제로 싸우고 있습니다.목록에있는 모든 개체의 속성에 값을 추가하는 방법

class A: 
    def __init__(self): 
     self.value = value 

그런 다음 우리는 몇 개체를 만들고 목록에 추가 :

for obj in range(10): 
    L.append(A()) 

가 그럼 난 목록에있는 모든 개체의 속성에 값을 추가 싶어 우리가 목적을 가지고 상상해보십시오.

우리가 함수 만들 때 그것은 간단하다

def add(self, List): 
    for objs in List: 
     objs.value += 1 

을,하지만 난 더 좋은 방법을 찾고 있어요. 나는 람다와리스트의 이해력으로 다음과 같이 시도했다 :

add = lambda some_list: [obj.value+1 for obj in some_list] 

그러나 그것은 전혀 작동하지 않는다.

파이썬으로 어떻게 해결할 수 있는지 알고 계십니까? 감사!

+1

아니요, 실제로이 작업을 수행하는 더 깨끗한 방법은 없습니다. 당신은 파이썬에서 문장 인 과제를 수행해야합니다. 따라서 인라인 할 수 없습니다. 최선의 방법은 for-loop를 사용하는 것입니다. – iCodez

+1

기존 목록의 요소에 대한 작업을 "멋지게"수행하기 위해 어떤 식으로 목록을 만들고 있습니까? –

+0

"하지만 전혀 작동하지 않는다"는 것은 무엇을 의미합니까? 오류가 있습니까? – Marcin

답변

0

를 사용하면 객체 목록 'L'을 만든 후에, 다음 코드는 '

[obj.value += 1 for obj in L] 

지금에 각 개체의 속성 나를 위해 일한 L '값이 증가합니다

관련 문제