2009-06-22 2 views
6

NSArrayNSDictionaries이고 길이가 10 요소라고 가정 해 봅시다. 두 번째 NSArray 각 사전에 단일 키에 대한 값을 만들고 싶습니다. 이 일을 내가 알 수있는 가장 좋은 방법은 다음과 같습니다기존 NSArray에서 새 NSArray를 작성하기위한 표준 규칙은 무엇입니까?

NSMutableArray *nameArray = [[NSMutableArray alloc] initWithCapacity:[array count]]; 
    for (NSDictionary *p in array) { 
     [nameArray addObject:[p objectForKey:@"name"]]; 
    } 
    self.my_new_array = array; 
    [array release]; 
    [nameArray release]; 
} 

그러나 새로운 목록을해야하기 때문에 이론적으로, 나는, 변경 가능한 배열을 사용하고 [nameArray addObjectAtIndex:count]과 함께 카운터를 사용하지 멀리 얻을 수 있어야합니다 이전 목록만큼이나 오래. 원래 배열의 하위 집합을 필터링하려고하는 것이 아니라 배열의 각 요소의 임의의 특성에서 준설 된 값을 사용하여 정확히 동일한 수의 요소로 새 배열을 만듭니다.

new_list = [p['name'] for p in old_list] 

또는이 같은 매저 키스트, 인 경우 : 목표 - C에서 약간 더 명시 적으로 갖는

new_list = map(lambda p: p['name'], old_list) 

날을 만드는 일이 같은이 문제를 해결할 수 파이썬에서

이러한 상황을 처리 할 수있는 일반적인 방법이 있는지 궁금합니다. 코코아가있는 NSArray 문서에서 간결 :)

NSArray *newArray = [array valueForKey:@"name"]; 

에 뒤지지되지 특히이 경우

답변

11

:

valueForKey :

는의 결과를 포함하는 배열을 반환 valueForKey 호출 : 키를 사용하여 각 수신자 오브젝트에 키를 입력하십시오.

+1

감사합니다. – Prairiedogg

관련 문제