Python 컬렉션 : Python 컬렉션에 대해 알아야 할 모든 것



이 블로그는 모든 전문 컬렉션 데이터 구조를 가진 collections 모듈과 함께 파이썬의 내장 컬렉션 데이터 유형을 다룰 것입니다.

Python 프로그래밍 언어에는 네 가지 컬렉션 데이터 유형이 있습니다. 명부 , 튜플, 세트 과 . 그러나 또한 기본적으로 네 가지 데이터 유형의 단점을 다루는 특수 데이터 구조를 가진 콜렉션으로 알려진 내장 모듈이 함께 제공됩니다. 이 블로그에서는 각각의 특수 데이터 구조를 자세히 살펴볼 것입니다. 다음은이 블로그에 포함 된 주제입니다.

파이썬에서 컬렉션이란 무엇입니까?

파이썬의 컬렉션은 기본적으로 컨테이너 데이터 유형, 즉 목록, 집합, 튜플, 사전입니다. 선언과 사용법에 따라 특성이 다릅니다.





  • 목록은 대괄호로 선언되고 변경 가능하며 중복 값을 저장하며 인덱스를 사용하여 요소에 액세스 할 수 있습니다.

  • 튜플은 중복 항목이 튜플 내부에있을 수 있지만 본질적으로 순서가 지정되고 변경할 수 없습니다.



  • 집합은 순서가 지정되지 않고 대괄호로 선언됩니다. 색인화되지 않았으며 중복 항목도 없습니다.

  • 사전에는 키 값 쌍이 있으며 본질적으로 변경 가능합니다. 사전을 선언하기 위해 대괄호를 사용합니다.

    자바 브레이크 아웃

이것은 파이썬의 범용 내장 컨테이너 데이터 유형입니다. 그러나 우리 모두 알다시피, 파이썬은 항상 약간의 추가 기능을 제공합니다. 특수 데이터 구조를 가진 collections라는 파이썬 모듈이 함께 제공됩니다.



전문 수집 데이터 구조

컬렉션 파이썬 모듈 python의 내장 컨테이너 데이터 유형에 대한 대안을 제공하는 특수 데이터 구조를 구현합니다. 다음은 컬렉션 모듈의 특수 데이터 구조입니다.

  1. namedtuple ()
  2. 체인 맵
  3. 카운터
  4. OrderedDict
  5. defaultdict
  6. UserDict
  7. UserList
  8. UserString

namedtuple ()

이름이 지정된 항목이있는 튜플을 반환합니다. 이는 튜플의 각 값에 이름이 할당됨을 의미합니다. 인덱스 값을 사용하여 요소에 액세스하는 문제를 극복합니다. namedtuple ()을 사용하면 특정 요소를 얻기 위해 인덱스 값을 기억할 필요가 없기 때문에 이러한 값에 더 쉽게 액세스 할 수 있습니다.

어떻게 작동합니까?

먼저 컬렉션 ​​모듈을 가져와야하며 설치가 필요하지 않습니다.

컬렉션에서 namedtuple 가져 오기

namedtuple을 사용하는 방법을 이해하려면 다음 코드를 살펴보십시오.

a = namedtuple ( 'courses', 'name, tech') s = a ( 'data science', 'python') print (s) # 출력은 course (name = 'python', tech = 'python')입니다.

목록을 사용하여 명명 된 튜플을 만드는 방법?

자바의 인터페이스와 클래스의 차이점
s._make ([ 'data science', 'python']) # 출력은 이전과 동일합니다.

deque는 'deck'으로 발음되며 쉽게 삽입 및 삭제를 수행 할 수 있도록 최적화 된 목록입니다.

어떻게 작동합니까?

# 컬렉션에서 deque 만들기 import deque a = [ 'd', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # 출력은 deque ([ ' d ','u ','r ','e ','k '])

이제 deque에서 항목을 삽입하고 제거하는 방법을 살펴 보겠습니다.

a1.append ( 'a') print (a1) # 출력은 deque ([ 'd', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft ( ' e ') print (a1) # 출력은 deque (['e ','d ','u ','r ','e ','k ','a '])

분명한 바와 같이 구성 요소 삽입은 deque를 사용하여 향상되며 구성 요소를 제거 할 수도 있습니다.

a1.pop () print (a1) # 출력은 deque ([ 'e', ​​'d', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) # 출력은 deque ([ 'd', 'u', 'r', 'e', ​​'k'])

내장 데이터 유형과 유사하게, deque에서 수행 할 수있는 몇 가지 다른 작업이 있습니다. 요소를 세거나 deque를 지우는 것과 같습니다.

ChainMap

여러 매핑의 단일보기를 만들 수있는 클래스와 같은 사전입니다. 기본적으로 여러 다른 사전 목록을 반환합니다. 여러 키 값 쌍이있는 두 개의 사전이 있다고 가정합니다.이 경우 ChainMap은 두 사전이 모두 포함 된 단일 목록을 만듭니다.

어떻게 작동합니까?

컬렉션에서 import ChainMap a = {1 : 'edureka', 2 : 'python'} b = {3 : 'data science', 4 : 'Machine learning'} c = ChainMap (a, b) print (c) #the 출력은 ChainMap [{1 : 'edureka', 2 : 'python'}, {3 : 'data science', 4 : 'Machine learning'}]입니다.

요소에 액세스하거나 삽입하기 위해 키를 색인으로 사용합니다. 그러나 ChainMap에 새 사전을 추가하려면 다음 접근 방식을 사용합니다.

a1 = {5 : 'AI', 6 : 'neural networks'} c1 = c.new_child (a1) print (c1) # 출력은 ChainMap [{1 : 'edureka', 2 : 'python'}, { 3 : '데이터 과학', 4 : '머신 러닝'}, {5 : 'AI', 6 : '신경망'}]

카운터

해시 가능한 개체를 계산하는 데 사용되는 사전 하위 클래스입니다.

어떻게 작동합니까?

from collections import Counter a = [1,1,1,1,2,3,3,4,3,3,4] c = Counter (a) print (c) # 출력은 Counter = ({1 : 4, 2 : 1, 3 : 4, 4 : 2})

사전에서 수행 할 수있는 작업 외에도 카운터에는 수행 할 수있는 작업이 3 개 더 있습니다.

  1. 요소 함수 – 카운터의 모든 요소를 ​​포함하는 목록을 반환합니다.
  2. Most_common () – 카운터의 각 요소 개수와 함께 정렬 된 목록을 반환합니다.
  3. Subtract () – 반복 가능한 객체를 인수로 취하고 Counter에있는 요소의 개수를 뺍니다.

OrderedDict

항목이 추가 된 순서를 기억하는 사전 하위 클래스입니다. 기본적으로 키의 값을 변경하더라도 사전에 삽입 된 순서로 인해 위치는 변경되지 않습니다.

어떻게 작동합니까?

컬렉션에서 import OrderedDict od = OrderedDict () od [1] = 'e'od [2] = 'd'od [3] = 'u'od [4] = 'r'od [5] = 'e'od [6] = 'k'from [7] = 'a'print (from) # 출력은 OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

사전에 어떤 값이 삽입되는지는 중요하지 않습니다. OrderedDict는 삽입 된 순서를 기억하고 그에 따라 출력을 가져옵니다. 키의 값을 변경하더라도. 키 값 4를 8로 변경하면 출력에서 ​​순서가 변경되지 않습니다.

defaultdict

누락 된 값을 제공하기 위해 팩토리 함수를 호출하는 사전 하위 클래스입니다. 일반적으로 사전에서 누락 된 키 값이 호출 될 때 오류가 발생하지 않습니다.

java에서 int로 double

어떻게 작동합니까?

from collections import defaultdict d = defaultdict (int) # 타입도 지정해야합니다. d [1] = 'edureka'd [2] = 'python'print (d [3]) # 키 오류 대신 0으로 출력을 제공합니다.

UserDict

이 클래스는 사전 객체를 감싸는 래퍼 역할을합니다. 이 클래스의 필요성은 dict에서 직접 하위 클래스를 만들어야하기 때문입니다. 기본 사전이 속성이되므로이 클래스로 작업하기가 더 쉬워집니다.

class collections.UserDict ([initialdata])

이 클래스는 사전을 시뮬레이션합니다. 인스턴스의 내용은 UserDict 클래스의 'data'속성으로 액세스 할 수있는 일반 사전에 보관됩니다. 초기 데이터의 참조는 다른 용도로 사용하기 위해 보관되지 않습니다.

UserList

이 클래스는 목록 객체를 감싸는 래퍼처럼 작동합니다. 상속하고 기존 메소드를 재정의하거나 더 적은 수의 새 메소드를 추가 할 수있는 클래스와 같은 다른 목록에 유용한 기본 클래스입니다.

이 클래스의 필요성은 목록에서 직접 하위 클래스를 만들어야하기 때문입니다. 기본 목록이 속성이되므로이 클래스로 작업하기가 더 쉬워집니다.

class collections.UserList ([list])

목록을 시뮬레이션하는 클래스입니다. 인스턴스의 내용은 일반적인 목록에 보관됩니다. 목록의 하위 클래스는 경합없이 또는 하나의 경합으로 호출 할 수있는 생성자를 제공하는 데 의존합니다.

이 블로그에서 우리는 파이썬의 컬렉션 모듈과 함께 제공되는 특수 데이터 구조에 대해 배웠습니다. 최적화는 더 나은 성능과 향상된 결과로 이어집니다. 우리 자신의 경력과 기술에도 동일하게 적용됩니다. 학습을 시작하고 프로그래밍을 인식하는 방식을 최적화하려면 edureka의 파이썬으로 끝없는 가능성을 열어보세요.

질문이 있습니까? 의견에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.