의 사전을 평평하게 그것은 my_dict['b'][(1,2)]
도 존재 함을 의미하지는 않습니다.목록 이해 내가 사전의 사전이 사전
[True, False, True, False]
나는이 달성하기 위해 하나의 지능형리스트를 사용하는 것을 시도하고있다 :
[my_dict[letter][pair] for pair in my_dict[letter] for letter in my_dict]
이이 오류가 발생합니다
나는 부울 값 (특별한 순서없이) 목록을 원하는 :
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-142-dc1565efcdc8> in <module>()
6 }
7
----> 8 [my_dict[letter][pair] for pair in my_dict[letter] for letter in my_dict]
KeyError: (2, 3)
은 모두 my_dict [ 'A'] 및 my_dict [ 'B']에서 (2,3)을 찾는 것으로 보인다. 나는 내가 쓰는 이해력이 적절한 사전에있는 키들을 찾을 것이라고 생각했다.
중첩 된 사전을 병합 할 수있는 this solution을 보았습니다. 나는 또한 명령형 루프로 무차별 적으로 강제 할 수 있음을 안다. 목록 작성이 왜 내가 쓰는 방식대로 작동하지 않는지 이해하려고 노력하고 있습니다.
OP는 예상대로 보이는대로 [True, False, True, False]를 얻을 수 없다는 것을 알고 싶을 수도 있습니다 - 오 - 결코 신경 쓰지 마세요 - 특별한 순서없이 *를 보지 않았습니다 * -이 경우 목록 대신'Counter '를 사용할 수도 있습니다 :) –
설명 주셔서 감사합니다. 감사드립니다. 목록 내포를 할 때 중첩 순서를 감싸는 것은 어렵습니다. 다른 중첩 된 for 루프처럼 생각하면 이해할 수 있습니다. 웬일인지 나는 다른 방향으로가는 것이 더 의미가 있다고 생각한다. – elsherbini
또한이 작업은 매우 효과적이었습니다 :'[my_dict [letter] [쌍] for my_dict [letter]]'(순서 만 바꾸면) – elsherbini