Python을 사용하여 목록에 요소가 없는지 확인
Python에서 목록에 요소가 없는지 확인하는 방법은 다음을 통해 수행할 수 있습니다. '포함되지 않음' 연산자입니다. 그러나 튜플 목록으로 작업할 때 일반적인 함정이 발생합니다.
초기 코드:
제공된 코드:
if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList: # Do Something
프로그래머 특정 튜플(curr_x-1, curr_y)이 myList에 없는 경우에만 'if' 분기를 실행하려고 합니다. 그런데 코드가 오작동하는 것 같습니다.
문제 원인:
이 문제는 myList에 없는 논리식(curr_x-1, curr_y)에서 발생하지 않습니다. . 이 표현식은 다음 예에서 설명한 것처럼 튜플이 목록에 없으면 True로 올바르게 평가되고, 있으면 False로 평가됩니다.
>>> 3 not in [2, 3, 4] False >>> 3 not in [4, 5, 6] True
튜플 대 목록:
버그는 코드의 다른 곳에 있을 가능성이 높습니다. 목록과 달리 튜플은 Python에서 불변입니다. 즉, 튜플은 일단 생성되면 수정할 수 없습니다. 이를 수정하려고 하면 TypeError가 발생하여 'not in' 연산자의 작동을 방해할 수 있습니다.
해결책:
잠재적인 문제를 방지하려면 문제가 있는 경우 목록의 튜플과 부재를 확인하는 튜플이 코드 전체에서 변경되지 않은 상태로 유지되는지 확인하세요. 수정해야 하는 경우 튜플 대신 목록을 사용하는 것이 좋습니다.
위 내용은 Python의 튜플에서 \'not in\'이 예상대로 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!