Python의 컬렉션: 알아야 할 모든 것
게시 됨: 2021-04-09파이썬 은 강력한 프로그래밍 언어입니다. 모듈식이며 단순성, 재사용성 및 유지 관리 용이성으로 유명합니다. 모듈식 프로그래밍에서 크고 복잡한 프로그래밍 작업은 더 작은 모듈로 나뉩니다.
이 기사에서는 Python의 모듈 컬렉션에 대해 설명합니다 . Collection은 기능을 개선하고 Python의 범용 내장 dict, list, set 및 tuple 컨테이너의 대안입니다.
'파이썬 목록, 튜플, 집합 및 사전은 사용자 정의 데이터 구조이며 각각 고유한 장단점이 있습니다.'
목차
파이썬 모듈
모듈은 함수 세트를 구현하는 Python 정의 및 명령문이 포함된 파일입니다. import 명령은 다른 모듈에서 모듈을 가져오는 데 사용됩니다. Python에는 여러 내장 모듈이 있습니다.
이제 기사의 핵심으로 와서 Python의 모듈 컬렉션에 대해 자세히 알아 보겠습니다.
파이썬의 컬렉션
Python 의 컬렉션은 데이터 컬렉션을 저장하는 컨테이너입니다. List, set, tuple, dict 등 은 Python의 내장 컬렉션입니다 . Python에는 데이터 컬렉션을 저장하기 위한 추가 데이터 구조를 제공하는 6개의 컬렉션 모듈이 있습니다. 이 Python 모듈은 내장 컨테이너 컬렉션의 작업을 향상시킵니다.
이제 Python 모듈 의 컬렉션에서 제공하는 다양한 컨테이너에 대해 논의할 것입니다.
1. 오더딕트
OrderedDict()는 키가 삽입되는 순서를 유지하는 사전 객체와 유사하게 작동합니다. 키를 다시 삽입하려는 경우 이전 값을 덮어쓰게 되며 키 위치는 변경되지 않습니다.
예시:
컬렉션에서 OrderedDict 가져오기
d1=collections.OrderedDict()
d1['A']=1
d1['B']=2
d1['C']=3
d1['D']=4
d1.items()의 x,v:
인쇄 (x,v)
산출:
1
B 2
C 3
D 4
2. 데크()
Python deque()는 양 극단에서 항목을 추가 및 제거하는 최적화된 목록입니다.
예시:
컬렉션에서 데크 가져오기
목록1 = ["a","b","c"]
데크 = 데크(목록1)
인쇄(덱)
산출:
데크(['a', 'b', 'c'])
3. 카운터
카운터는 해시 가능한 개체를 계산하는 사전 개체의 하위 그룹입니다. 카운터 함수 는 반복 가능한 입력을 인수로 취하고 출력을 사전으로 반환합니다. 키는 반복 가능한 요소이고 값은 요소가 반복 가능한 요소에 존재하는 총 횟수입니다.
예시:
컬렉션에서 카운터 가져오기
c = 카운터()
목록1 = [1,2,3,4,5,7,8,5,9,6,10]
카운터(목록1)
카운터({1:5,2:4})
목록1 = [1,2,4,7,5,1,6,7,6,9,1]
c = 카운터(목록1)
인쇄 (c[1])
산출:
삼
추가 카운터 기능
1. elements() 함수
elements() 함수는 Counter 객체 에 있는 요소의 목록을 반환합니다.
예시:
c = 카운터({1:4,2:3})
인쇄(목록(c.elements()))
산출:
[1,1,1,1,2,2,2]
여기에서 사전 인수를 사용하여 Counter 개체가 생성됩니다. 1에 대한 카운트 수는 4이고 2에 대한 카운트 수는 3 입니다. 반복자를 반환하는 c 객체와 함께 elements() 함수 가 호출됩니다 .
2. most_common() 함수
Counter() Python 함수는 정렬되지 않은 사전을 반환하는 반면 most_common () 함수는 각 요소 개수에 따라 정렬합니다.
예시:
목록 = [1,2,3,4,5,5,5,7,3]
c = 카운터(목록)
인쇄(c.most_common())
산출:
[((5,3), (1,1),(2,1),(3,2),(4,1), (7,1))]
여기서 most_common 함수는 요소의 개수에 따라 정렬된 목록을 반환합니다. 5는 세 번 온다. 따라서 목록의 요소로 먼저 표시됩니다.
3. 빼기() 함수
감산() 은 반복 가능한 또는 매핑 인수를 고려하고 해당 인수로 요소 수를 뺍니다.
예시:
c = 카운터({1:2,2:3})
출력= {1:1,2:1}
c.빼기(출력)
인쇄(c)
산출:
카운터({1:1,2:2})
4. 체인맵 객체
Chainmap 클래스는 여러 사전을 그룹화하여 단일 목록을 만듭니다. 연결된 사전은 공용이며 map 속성으로 액세스할 수 있습니다.
예시:
컬렉션에서 체인맵 가져오기
dict1 = { 'w' : 1, 'x' : 2 }
dict2 = {'y': 3. 'z': 4 }
chain_map = ChainMap(dict1,dict2)
인쇄(chain_map.maps)
산출:
[{'x' : 2, 'w' :1}, {'y' : 3, 'x':4}]
5. 네임드튜플
namedtuple() 함수는 튜플의 각 위치에 대한 이름이 있는 튜플 객체를 반환합니다. 튜플 객체의 각 필드의 인덱스를 기억하는 문제를 없애기 위해 도입되었습니다.
예시:
컬렉션에서 명명된 튜플 가져오기
학생 = 이름이 지정된 튜플('학생', '이름, 성, 나이')
s1 = 학생('톰', '얼터', '12')
인쇄(s1.이름)
산출:
학생(이름='톰', 성='알터', 나이='12')
이 예에서는 클래스 인스턴스의 필드에 액세스할 수 있습니다.
6. 기본 사전
Python defaultdict()는 사전 객체이며 dict 클래스의 하위 클래스입니다. 모든 사전 메서드를 제공하지만 첫 번째 인수를 기본 데이터 형식으로 사용합니다. 존재하지 않는 키에 액세스하면 오류 가 발생 합니다.
예시:
컬렉션에서 defaultdict 가져오기
num = defaultdict(int)
숫자['하나'] = 1
숫자['둘'] = 2
인쇄 (숫자['3'])
산출:
0
결론
Python의 컬렉션 은 Python 컬렉션 모듈을 개선하는 것으로 알려져 있습니다. 컬렉션은 Python 2.4 버전에서 도입되었습니다. 후속 버전에서는 많은 변경 및 개선을 기대할 수 있습니다. 이 기사에서는 Python의 6가지 기존 컬렉션 을 예제와 언어에서 구현하는 방법을 설명했습니다. 그것들은 학습자의 관점에서 가장 중요한 개념 중 하나입니다.
upGrad의 독점적인 컴퓨터 응용 학사 프로그램을 통해 Python 으로 컬렉션을 배우십시오 . 이 프로그램은 IT 산업에 진입하는 데 필요한 기술을 다룹니다.
파이썬, 데이터 과학에 대해 자세히 알고 싶으시면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링을 제공하는 IIIT-B & upGrad의 데이터 과학 이그 제 큐 티브 PG 프로그램을 확인하십시오. , 업계 멘토와 1:1, 최고의 기업과 400시간 이상의 학습 및 취업 지원.
세계 최고의 대학에서 온라인으로 데이터 과학 과정 을 배우 십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
Python에는 이미 4개의 내장 컬렉션 데이터 유형이 있습니다. 목록, 튜플, 사전 및 집합입니다. 그러나 이러한 데이터 컨테이너는 일반적인 용도로 사용됩니다. Python 사전 또는 "Dict"는 정렬되지 않은 요소 컬렉션을 저장하는 데 사용되는 Python의 내장 데이터 구조입니다. 단일 값을 저장하는 다른 Python 데이터 구조와 달리 사전 데이터 구조는 모든 키가 고유한 키-값 쌍을 저장합니다. 키-값 쌍의 삽입 순서를 기억하지 않고 키를 반복합니다. Python의 namedtuple은 다양한 작업을 수행합니다. 다음은 명명된 튜플이 수행하는 가장 일반적인 작업의 목록입니다.파이썬에서 컬렉션 모듈이 필요한 이유는 무엇입니까?
다음 사항은 기본 제공 데이터 컨테이너보다 컬렉션 모듈을 사용할 때의 주요 이점을 강조합니다.
컬렉션 모듈은 namedtuple, OrderedDict, defaultdict, chainmap, counter 등과 같은 컨테이너의 특수 버전을 제공합니다.
더 최적화됨에 따라 이러한 컨테이너는 목록, 튜플 및 집합과 같은 기존 데이터 컨테이너에 대한 더 나은 대안임이 입증되었습니다.
수집 모듈은 구조화된 데이터를 처리하는 데 효율적입니다.
Namedtuple과 같은 데이터 컨테이너는 메모리를 덜 소비하고 데이터를 저장하고 관리하기 위한 향상된 작업을 제공합니다. Python에서 사전과 Ordered Dictionary의 차이점은 무엇입니까?
반면에 Ordered Dictionary 또는 OrderedDict는 키-값 쌍의 삽입 순서를 추적합니다. 또한 이중 연결 목록 구현으로 인해 Python의 일반 사전보다 더 많은 메모리를 소비합니다. 동일한 키를 삭제하고 다시 삽입하면 OrderedDict가 삽입 순서를 기억하므로 원래 위치에 삽입됩니다. Namedtuple의 다양한 작업은 무엇입니까?
1. 액세스 작업: 인덱스에 의한 액세스: 명명된 튜플의 요소는 사전과 달리 인덱스로 액세스할 수 있습니다. 키 이름으로 액세스: 요소에 액세스하는 다른 방법은 키 이름을 사용하는 것입니다.
2. 변환 작업: make(): 이 함수는 명명된 튜플을 반환합니다. _asadict(): 이 함수는 매핑된 값으로 구성된 순서가 지정된 사전을 반환합니다. "**"(이중 별표) 연산자 사용: 이 함수는 Python 사전을 명명된 튜플로 변환합니다.
3. 추가 작업: _fileds(): 이 함수는 지정된 명명된 튜플의 모든 키 이름을 반환합니다. _replace(): 이 함수는 키 이름을 인수로 사용하여 매핑된 값을 변경합니다.