2017-10-24 8 views
0

부울 값으로 구성된 list이라는 목록이 있다고 가정 해보십시오. 또한 내가 값을 바꾸고 싶은 list의 인덱스 인 일부 유효한 인덱스 (i)가 있다고 가정 해보십시오.앨리어싱을 사용하여 목록을 한 번 반복 (파이썬)

현재, 내가 가지고있는 것 : list[i] = not list[i].

하지만 제 질문은 list을 두 번 반복하지 않습니까? 그렇다면 앨리어싱을 통해 임시 값을 설정하여 목록을 한 번만 반복하는 방법이 있습니까?

temp = list[i] 
temp = not temp 

그러나 이것은 나를 위해 일하지, 그것은 list[i]의 값을 temp의 값을 전환하고,뿐만 아니라있다 :

나는은 다음 시도했다.

+0

'목록을 통해이 반복 처리 회가?'그것을합니까하지 않습니다를 사용하여'후드 '약간 방법을 볼 수 있습니까? 왜 그렇게 생각하니? –

+0

목록을 전혀 반복하지 않습니까? 나는 네가 무슨 뜻인지 이해하지 못한다. –

답변

0

당신은 dis 모듈 https://docs.python.org/3/library/dis.html

import dis 


boolst = [True, True, True, True, True] 

dis.dis('boolst[2] = not boolst[2]') 
    1   0 LOAD_NAME    0 (boolst) 
       2 LOAD_CONST    0 (2) 
       4 BINARY_SUBSCR 
       6 UNARY_NOT 
       8 LOAD_NAME    0 (boolst) 
      10 LOAD_CONST    0 (2) 
      12 STORE_SUBSCR 
      14 LOAD_CONST    1 (None) 
      16 RETURN_VALUE 

dis.dis('boolst[2] ^= True') 
    1   0 LOAD_NAME    0 (boolst) 
       2 LOAD_CONST    0 (2) 
       4 DUP_TOP_TWO 
       6 BINARY_SUBSCR 
       8 LOAD_CONST    1 (True) 
      10 INPLACE_XOR 
      12 ROT_THREE 
      14 STORE_SUBSCR 
      16 LOAD_CONST    2 (None) 
      18 RETURN_VALUE