파이썬 리스트 크기 선언 - paisseon liseuteu keugi seon-eon

  1. 어떻게
  2. 파이썬 사용법
  3. 파이썬에서 특정 크기의 목록을 만드는 방법

파이썬에서 특정 크기의 목록을 만드는 방법

창립일자: April-04, 2020 | 갱신일자: June-25, 2020

  1. 리스트를위한 사전 할당 저장소
  2. 다른 순차 데이터 구조를위한 사전 할당 스토리지

목록 또는 배열에 대한 사전 할당 스토리지는 프로그래머에게 일반적인 패턴입니다. 그들이 요소의 수를 미리 알 때.

C++ 및 Java 와 달리 Python 에서는 사전 할당 된 모든 저장소를 일부 값으로 초기화해야합니다. 일반적으로 개발자는None,'',False0 과 같은 목적으로 잘못된 값을 사용합니다.

파이썬은 고정 된 크기의 목록을 만드는 여러 가지 방법을 제공합니다. 다른 성능 특성.

다른 접근 방식의 성능을 비교하기 위해 Python 의 표준을 사용합니다. 모듈 timeit. 작은 파이썬 코드의 실행 시간을 측정하는 편리한 방법을 제공합니다.

리스트를위한 사전 할당 저장소

*연산자를 사용하는 첫 번째이자 가장 빠른 방법은 지정된 목록을 반복합니다. 횟수.

>>> [None] * 10
[None, None, None, None, None, None, None, None, None, None]

백만 번의 반복 ( timeit에서 반복의 기본값)은 대략 117ms

>>> timeit("[None] * 10")
0.11655918900214601

또 다른 방법은 목록 이해와 함께 range 내장 함수를 사용하는 것입니다.

>>> [None for _ in range(10)]
[None, None, None, None, None, None, None, None, None, None]

거의 6 배 더 느리고 백만 회당 612ms 가 걸립니다.

>>> timeit("[None for _ in range(10)]")
0.6115895550028654

세 번째 방법은 간단한 for 루프를 list.append()와 함께 사용하는 것입니다.

>>> a = []
>>> for _ in range(10):
...   a.append(None)
...
>>> a
[None, None, None, None, None, None, None, None, None, None]

루프를 사용하는 것이 가장 느린 방법이며 백만 회 반복을 완료하는 데 842ms 가 걸립니다.

>>> timeit("for _ in range(10): a.append(None)", setup="a=[]")
0.8420009529945673

다른 순차 데이터 구조를위한 사전 할당 스토리지

순차 데이터 구조를위한 스토리지를 사전 할당하므로 array 내장 데이터를 사용하는 것이 좋습니다. 목록 대신 구조.

>>> from array import array
>>> array('i',(0,)*10)
array('i', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

아래에서 볼 수 있듯이이 접근법은[None] * 10 다음으로 두 번째로 빠릅니다.

>>> timeit("array('i',(0,)*10)", setup="from array import array")
0.4557597979946877

위의 순수한 파이썬 접근법을 과학 컴퓨팅을위한 NumPy 파이썬 패키지와 비교해 보자.

>>> from numpy import empty
>>> empty(10)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

NumPy 방식은 백만 회당 589ms 가 소요됩니다.

>>> timeit("empty(10)", setup="from numpy import empty")
0.5890094790011062

그러나 NumPy 방식은 더 큰 목록의 경우 훨씬 빠릅니다.

>>> timeit("[None]*10000")
16.059584009999526
>>> timeit("empty(10000)", setup="from numpy import empty")
1.1065983309963485

결론은 작은 목록에 대해서는 [None] * 10 을 고수하는 것이 가장 좋지만 더 큰 순차적 데이터를 처리 할 때 NumPy 의 empty()에.

관련 문장 - Python List

  • Python에서 사전을 목록으로 변환
  • Python의 목록에서 요소의 모든 발생 제거
  • Python의 목록에서 중복 제거
  • 파이썬에서 목록의 평균을 얻는 방법
  • 파이썬 리스트 크기 선언 - paisseon liseuteu keugi seon-eon

    파이썬에서 리스트의 size를 계산할 때 len() 함수를 사용하면 됩니다.

    1. len()으로 리스트의 크기

    len()은 다음과 같이 인자로 전달된 sequence(list, tuple 등)의 크기를 리턴합니다.

    len(s)
    
    Return the length (the number of items) of an object. The argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

    list 또한 collection 및 sequence에 해당하며, 다음과 같이 len()으로 크기를 계산할 수 있습니다.

    my_list = []
    print(len(my_list))
    
    my_list = [10, 22, 19]
    print(len(my_list))

    Output:

    2. tuple, dict, range의 크기 확인

    tuple, dictionary, range의 크기도 len()으로 계산할 수 있습니다.

    my_tuple = (10, 22, 19, 23)
    print(len(my_tuple))
    
    my_dict = {1: 'a', 2: 'b'}
    print(len(my_dict))
    
    my_range = range(1, 10)
    print(len(my_range))

    Output:

    3. byte, string의 길이

    byte와 string의 크기도 len()으로 계산할 수 있습니다.

    str = 'Python'
    print(len(str))
    
    byte = b'Python'
    print(len(byte))

    Output:

    참고

    • docs.python.org

    • Python - 리스트 평균 구하기, 3가지 방법
    • Python - 딕셔너리에서 최대값, 최소값 찾기
    • Python - 문자열에서 특수문자 제거, 숫자 제거, 숫자만 남기기
    • Python - 2차원 리스트(배열) 선언, 초기화
    • Python - 두 리스트 비교, 4가지 방법
    • Python - 문자열에서 문자의 Index 찾기
    • Python - 리스트에서 최대, 최소 값 찾기
    • Python - for문에서 index 사용하기, 3가지 방법
    • Python 소수점 반올림, round() 예제
    • 파이썬 주석 처리, 단축키 소개
    • Python - String isdigit(), 문자열이 숫자인지 확인
    • Python 소수점 버림, 4가지 방법
    • Python - String Formatting의 다양한 방법 정리(%, Str formatting, f-stirng)
    • Python - 파일을 읽고 한 줄씩 리스트에 저장
    • Python - Text 파일 읽고 쓰는 방법 (read, write, append)
    • Python - os.path.join(), 폴더와 파일명으로 Path 생성
    • Python - 문자열에서 줄바꿈(\n) 제거, 3가지 방법
    • Python - Switch Case 구현 방법 (Match Case)
    • 우분투에 Python 3.10 설치하는 방법
    • Python - 문자열에서 특정 문자 제거, 3가지 방법
    • Python - 함수 정의 및 호출 방법