>  기사  >  웹 프론트엔드  >  is를 사용할 때의 팁과 함정, 그리고 선택자의 위치를 ​​자세히 설명하세요.

is를 사용할 때의 팁과 함정, 그리고 선택자의 위치를 ​​자세히 설명하세요.

WBOY
WBOY원래의
2023-09-09 09:43:46829검색

is를 사용할 때의 팁과 함정, 그리고 선택자의 위치를 ​​자세히 설명하세요.

is 및 where 선택기 사용에 대한 팁과 함정에 대해 자세히 알아보세요.

일반적으로 사용되는 선택기인 is 및 where는 코드를 작성할 때 자주 접하게 됩니다. 이들 기능은 유사하며 둘 다 데이터를 필터링하는 데 사용되지만 사용 중에 주의해야 할 몇 가지 기술과 함정도 있습니다.

먼저 is 선택기의 사용법을 살펴보겠습니다. is 선택기의 기능은 객체에서 특정 속성 값을 가진 요소를 선택하는 것입니다.

샘플 코드는 다음과 같습니다.

data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'Tom', 'age':27}]
result = [person for person in data if person['name'] == 'John']

print(result)

실행 결과:

[{'name': 'John', 'age': 25}]

예제에서는 is 선택기를 사용하여 데이터에서 John이라는 사람의 정보를 필터링합니다. 목록 이해를 사용하면 조건을 충족하는 요소를 빠르게 필터링할 수 있습니다.

그러나 is 선택기를 사용할 때 주의해야 할 문제가 있습니다. is 선택기는 값이 아닌 참조를 비교합니다. 다음과 같이 샘플 코드를 약간 수정하면:

data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'John', 'age':27}]
result = [person for person in data if person['name'] == 'John']

print(result)

실행 결과:

[{'name': 'John', 'age': 25}, {'name': 'John', 'age': 27}]

필터링 조건이 John이라는 사람이지만 필터링된 결과에는 실제로 John이라는 사람 두 명이 포함되어 있음을 알 수 있습니다. 이는 is 선택기가 값이 아닌 메모리 주소를 비교하기 때문입니다.

이 문제를 피하기 위해 where 선택기를 사용할 수 있습니다. where 선택기는 값을 비교하고 더 유연합니다.

샘플 코드는 다음과 같습니다.

import operator

data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'John', 'age':27}]
result = [person for person in data if operator.eq(person['name'], 'John')]

print(result)

작업 결과:

[{'name': 'John', 'age': 25}]

예제에서는 where 선택기를 사용하여 John이라는 사람에 대한 정보를 필터링하기 위해 Operator.eq 함수를 통해 요소의 값을 비교합니다. 조건을 만족하는 첫 번째 요소만 결과에 포함됩니다.

where 선택기를 사용하는 경우 연산자 모듈을 가져와서 모듈의 기능을 사용하여 비교 작업을 수행해야 한다는 점에 유의하세요. 이렇게 하면 요소의 값을 정확하게 비교하고 is 선택기의 함정을 피할 수 있습니다.

실제 프로그래밍에서는 실제 필요에 따라 적절한 선택기를 선택하는 것이 매우 중요합니다. 값을 비교해야 하는 경우 where 선택기를 사용해야 하며, 참조를 비교해야 하는 경우 is 선택기를 사용할 수 있습니다.

요약하자면, 선택자는 데이터 필터링을 위해 일반적으로 사용되는 선택자입니다. 사용하는 동안 is 선택기는 참조를 비교하고 where 선택기는 값을 비교한다는 점에 유의하세요. 실제 요구 사항에 따라 적절한 선택기를 선택하고 사용 기술에 주의를 기울여 함정을 피하면 고품질 코드를 더 잘 작성할 수 있습니다.

위 내용은 is를 사용할 때의 팁과 함정, 그리고 선택자의 위치를 ​​자세히 설명하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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