2017-05-10 4 views
0

내가 파이썬에서이 사전을 상상Python3 목록 발현

for item in dict['arr']: 
    item['prop1'] = 'foobar' 

그러나 목록 표현식을 사용하여이를 수행 할 수있는 방법이 있는지 알고 싶습니다. 이것은 가정

dict['arr'] = [ 
    {k: 'foobar' if k == 'prop1' else v for k, v in d.items()} 
    for d in dict['arr']] 

당신이 그 사전에 다른 키를 가지고 : 당신이 전체 사전 각 단계를 교체 할 경우에만 할 수

답변

3

하지만. 당신은 단지 하나의 키를 가진 새 사전을 생성하지 않는 경우 :

개인적으로
dict['arr'] = [{'prop1': 'foobar'} for _ in dict['arr']] 

, 당신은 사전에 키 - 값 쌍을 업데이트하고있는 모든, 그냥 원래 for 루프에 충실합니다.

+0

목록 표현식이 항상 새로운 목록을 반환하기 때문에 이것을 추가하는 것이 좋습니다. 변수를 업데이트하려면 전체를 덮어 써야합니다. –