입력 유효성 검사를 수행하면서 제공된 데이터에 지정된 모든 필수 속성이 있는지 여부와 원하지 않는 속성을 버리는 지 여부를 구체적으로 확인하면서 다음과 같이했습니다.일부 쌍을 새 사전에 복사하는 파이썬 사전 이해
>>> input = {'v1': 'val1', 'a2':'val2', 'a3':'val3'}
>>> print input
{'v1': 'val1', 'a3': 'val3', 'a2': 'val2'}
>>> goodkeys = ['a2', 'a3']
>>> print goodkeys
['a2', 'a3']
>>> output = {}
>>> for a in goodkeys:
... output[a] = input[a]
...
>>>
>>> print output
{'a3': 'val3', 'a2': 'val2'}
물론 작동합니다. 그러나 더 평범한 방법으로 이것을 할 수도 있다는 생각이 들었습니다. 나는 시도했다 :
>>> output = {}
>>> print output
{}
>>> output = { a:v for a in goodkeys for v in input[a] }
>>> print output
{'a3': '3', 'a2': '2'}
>>>
나는 어느정도 효과가 있다고 생각했는데, 그 다음 값이 잘못되었다는 것을 깨달았다. 예쁜 파이썬 방법이 있습니까? 그리고 무슨 일이 있었는지, 파이썬은 어디에서 그 가치를 얻었습니까?
input'가 좋은 키 중 하나를 포함하지 않는 '경우는,'a2' 말을 변경해보십시오? – georg
변수 이름으로 'input'을 사용하지 마십시오. 이것은 python 3의 키워드입니다. – palsch