2013-10-09 3 views

답변

3

에 대한 편집 나는 당신이 원하는 두 가지 중 어느 확실하지 않다 :

def get_all_values(list_o_dicts): 
    return [value for a_dict in list_o_dicts for value in a_dict.values()] 

... 또는 ...

def get_values(list_o_dicts, key): 
    return [a_dict[key] for a_dict in list_o_dicts] 

여기에 행동에 둘이다 , (a) 실제로 유효한 파이썬이고 (b) 다른 값을 가지고 있기 때문에 구별에 차이가 있습니다 :

>>> src = [ 
...  {'a': 1, 'b': 2}, 
...  {'a': 3} 
... ] 
>>> get_all_values(src) 
[1, 2, 3] 
>>> get_values(src, 'a') 
[1, 3] 
+0

감사합니다. @abarnert. 명확성을 위해, 어떤 종류의 연산이 파이썬에서 호출됩니까? 목록 이해력의 한 형태입니까? – Geuis

+0

예, 둘 다 목록을 포함합니다. 첫 번째 것은 두 개의 중첩 된'for' 절을 가진 목록 이해력입니다. 매우 일반적이지 않거나 읽기 쉽지 않습니다 (대신 보통'itertools.chain'을 사용하여'list_o_dicts의 a_dict에 대한 a_dict.values ​​()'를 평평하게 만듭니다) , 그러나 나는 설명하기 위해 여분의 것을 가져오고 싶지 않았다). 두 번째는 목록 내포의 패러다임 사례입니다. – abarnert

+0

빠른 답변 주셔서 감사합니다. 몇 년 동안 node.js 지역에 있었고 두 발로 파이썬으로 다시 뛰어 들었습니다. – Geuis

관련 문제