쉬운 3단계로 Python에서 목록의 길이 확인하기

이 기사에서는 몇 가지 쉬운 단계에서 목록의 길이를 확인하고 어느 것이 더 나은지 분석하는 방법을 살펴봅니다.

파이썬 목록이란 무엇입니까?

목록은 여러 데이터 유형을 저장할 수 있는 Python의 배열 모음입니다. 정수, 부동 소수점, 문자열, 부울 또는 목록 내부에 목록을 저장할 수 있습니다.

int_list = [1, 2, 3, 4, 5]

print(int_list) # output -> [1, 2, 3, 4, 5]

float_list = [1.1, 2.2, 3.3, 4.4, 5.5]

print(float_list) # output -> [1.1, 2.2, 3.3, 4.4, 5.5]

string_list = ['Geekflare', 'Cloudflare', 'Amazon']

print(string_list) # output -> ['Geekflare', 'Cloudflare', 'Amazon']

boolean_list = [True, False]

print(boolean_list) # output -> [True, False]

nested_list = [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

print(nested_list) # [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

different_datatype_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(different_datatype_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

Python 목록은 대괄호 또는 목록 생성자 함수를 사용하여 만들 수 있습니다.

square_bracket_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(square_bracket_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

constructor_list = list((1, 1.1, 'koreantech.org', True, [1, 1.1, 'Geekflare', True]))

print(constructor_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

위의 square_bracket_list는 대괄호([]), constructor_list는 목록 생성자를 사용하여 생성된 목록입니다. 둘 다 동일한 목록 출력만 생성합니다.

목록은 변경 가능하고 중복을 허용하며 인덱스를 사용하여 액세스할 수 있습니다.

목록 길이를 찾는 방법

  • len() 내장 함수
  • 연산자의 length_hint 메서드
  • 사용자 정의 기능 및 카운터

방법 1: len() 내장 함수

len()은 목록의 길이와 Set, Tuples, Dictionary와 같은 다른 반복 가능 항목을 찾는 데 사용되는 파이썬 내장 함수입니다.

  Microsoft Forms에서 설문지를 만드는 방법

예시 스니펫

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = len(languages)

print('Length of the Language List is: ',languages_length)

산출

Length of the Language List is:  5

Python이 설치되어 있기를 바랍니다. 그렇지 않은 경우 온라인 Python 컴파일러를 사용하여 코드를 연습할 수 있습니다.

방법 2: 연산자의 length_hint 메서드

length_hint는 반복 가능한 객체(예: List, Set, Tuples, Dictionary)의 길이를 반환하는 데 사용됩니다. 파이썬 연산자 모듈 내에서 사용할 수 있습니다. 다른 내장 연산자처럼 사용할 수 없습니다.

예시 스니펫

import operator

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = operator.length_hint(languages)

print('Length of the Language List using Operator is: ',languages_length)

산출

Length of the Language List using Operator is:  5

방법 3: 사용자 정의 기능 및 카운터

List의 길이를 구하는 이 방법에서는 for-loop와 counter를 사용하는 전통적인 방법을 사용할 것입니다.

이를 위해 파이썬으로 함수를 작성할 것입니다. 목록이나 다른 이터러블을 인수로 취하고 이터러블의 길이를 반환합니다.

사용자 정의 기능 스니펫

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

예시 스니펫

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = iterable_count(languages)

print('Length of the Language List using Custom function is: ',languages_length)

산출

Length of the Language List using Custom function is:  5

그 3가지 방법을 분석해보면

큰 목록에 대한 성능 분석

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 9999999))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

산출

3.957189619541168e-06 Length of the Integer List using len() is:  9999998
3.0621886253356934e-06 Length of the Integer List using length_hint is:  9999998
0.4059128537774086 Length of the Integer List using Custom function is:  9999998

데이터가 수백만 개일 때 length_hint가 더 빠릅니다(3.0621886253356934e-06). 길이 힌트가 CPython 런타임에서 사용되기 때문입니다. 파이썬 래퍼라고 불리는 곳.

  Mac에서 Split View를 빠르게 관리하는 방법

작은 목록에 대한 성능 분석

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 100))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

산출

7.813796401023865e-07 Length of the Integer List using len() is:  99
1.1278316378593445e-06 Length of the Integer List using length_hint is:  99
3.462657332420349e-06 Length of the Integer List using Custom function is:  99

데이터가 수천 이하일 때 len()이 더 빠릅니다(7.813796401023865e-07).

두 경우 모두 counter가 있는 사용자 정의 함수는 두 가지 방법보다 더 많은 시간이 걸립니다.

결론

이 기사에서는 목록의 길이를 확인하는 다양한 방법과 목록의 길이를 빠르게 확인하는 방법을 이해합니다.