내 문제의 단순화 된 버전 : 모든 set_state가하는도움말
s = FLAG1 | FLAG2 | FLAG3
[[c.set_state(s) for c in row] for row in self.__map]
입니다 : 내가 그래서 두 차원 목록에 비트 플래그를 설정하는 데 사용 나는 지능형리스트를
:
self.state |= f
잘 작동하지만이 함수는 "set_state"__map의 모든 셀에 있어야합니다. 이 제외
[[c.state |= s for c in row] for row in self.map]
또는
map(lambda c: c.state |= s, [c for c in row for row in self.__map])
도 작동합니다 (구문 오류) : __map의 모든 세포는 같은 것을 내가 할 노력하고있어 그래서 어떤 .STATE 있습니다. 아마도 map/lamda로 잘못된 트리를 짖고 있지만 set_state를 없애고 싶습니다. 그리고 어쩌면 할당이 목록 이해에서 작동하지 않는 이유를 알아 두십시오.