>백엔드 개발 >파이썬 튜토리얼 >Python 목록의 모든 요소가 동일한지 어떻게 효율적으로 확인할 수 있습니까?

Python 목록의 모든 요소가 동일한지 어떻게 효율적으로 확인할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-01 13:03:15290검색

How Can I Efficiently Check if All Elements in a Python List are Equal?

목록 요소의 동일성 검사

Python에서는 다양한 접근 방식을 사용하여 목록 내의 모든 요소가 동일한지 확인하는 것이 가능합니다. 권장되는 방법 중 하나는 itertools.groupby() 함수를 활용하는 것입니다. 이 함수는 동일한 값을 가진 연속 요소를 그룹화하여 그룹 키(요소 값) 및 해당 그룹을 포함하는 일련의 튜플을 반환합니다.

from itertools import groupby

def all_equal(iterable):
    g = groupby(iterable)
    return next(g, True) and not next(g, False)

이 코드는 목록 내에 그룹이 하나만 있는지 확인하여 모든 그룹이 요소는 동일합니다. 그렇다면 True를 반환합니다. 그렇지 않으면 단락 평가 속성을 사용하여 False를 반환합니다.

또는 groupby() 없이 더 간결한 솔루션을 사용할 수 있습니다.

def all_equal(iterator):
    iterator = iter(iterator)
    try:
        first = next(iterator)
    except StopIteration:
        return True
    return all(first == x for x in iterator)

이 접근 방식은 반복자를 초기화하고 첫 번째 요소. 그 후, 나머지 요소를 반복하여 첫 번째 요소와 비교합니다. 차이점이 발견되면 함수는 False를 반환합니다. 그렇지 않으면 True를 반환합니다.

이러한 방법은 효율적이지만 고려할 수 있는 대체 단일 라이너가 있습니다.

  1. 세트로 변환: 다음 사항을 확인하세요. 결과 집합의 길이는 1보다 작거나 같습니다.
  2. 첫 번째와 비교 항목: 목록을 반복된 첫 번째 항목만 포함하는 목록과 비교합니다.
  3. 첫 번째 항목의 발생 횟수: 목록의 첫 번째 항목 개수가 다음과 같은지 확인합니다. 목록의 길이입니다.

이러한 대안은 메모리 집약도가 낮고 성능 특성이 다를 수 있습니다. 그러나 잠재적인 메모리 복사본, 목록의 성격에 따라 효율성이 달라지는 등의 한계를 고려하는 것이 중요합니다.

위 내용은 Python 목록의 모든 요소가 동일한지 어떻게 효율적으로 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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