0
몇 년 후에 Python을 많이 사용하지 않았으며이를 수행하는 방법을 기억하기가 어려웠습니다.객체 목록의 특정 키를 사용하여 목록을 생성합니다.
src = [
{a: 1},
{a: 2, b: 'foo'},
{a: 3}
]
#python magic here outputs:
#[1,2,3]
* 선명도
몇 년 후에 Python을 많이 사용하지 않았으며이를 수행하는 방법을 기억하기가 어려웠습니다.객체 목록의 특정 키를 사용하여 목록을 생성합니다.
src = [
{a: 1},
{a: 2, b: 'foo'},
{a: 3}
]
#python magic here outputs:
#[1,2,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]
감사합니다. @abarnert. 명확성을 위해, 어떤 종류의 연산이 파이썬에서 호출됩니까? 목록 이해력의 한 형태입니까? – Geuis
예, 둘 다 목록을 포함합니다. 첫 번째 것은 두 개의 중첩 된'for' 절을 가진 목록 이해력입니다. 매우 일반적이지 않거나 읽기 쉽지 않습니다 (대신 보통'itertools.chain'을 사용하여'list_o_dicts의 a_dict에 대한 a_dict.values ()'를 평평하게 만듭니다) , 그러나 나는 설명하기 위해 여분의 것을 가져오고 싶지 않았다). 두 번째는 목록 내포의 패러다임 사례입니다. – abarnert
빠른 답변 주셔서 감사합니다. 몇 년 동안 node.js 지역에 있었고 두 발로 파이썬으로 다시 뛰어 들었습니다. – Geuis