>백엔드 개발 >파이썬 튜토리얼 >Python의 튜플에서 \'not in\'이 예상대로 작동하지 않는 이유는 무엇입니까?

Python의 튜플에서 \'not in\'이 예상대로 작동하지 않는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 09:20:03451검색

Why Doesn't

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.