4 Python의 내장 데이터 구조: 사전, 목록, 집합, 튜플
게시 됨: 2020-03-24이 기사에서는 Python의 데이터 구조에 초점을 맞추고 주제를 명확하게 이해하는 데 도움을 줄 것입니다. 그것들이 무엇이며 어떻게 작동하는지 알게 될 것입니다. 또한 여기에서 공유한 주제에 대해 의심의 여지가 없도록 다양한 예를 공유했습니다.
이제 더 이상 고민하지 않고 시작하겠습니다.
목차
데이터 구조란 무엇입니까?
데이터 구조를 사용하면 데이터를 효과적이고 효율적으로 구성하고 관리할 수 있습니다. 데이터의 접근성을 향상시킵니다. 적절한 데이터 구조가 있는 경우 저장된 데이터를 수정하는 것이 훨씬 더 간단해집니다. 이를 통해 데이터를 구성하고 저장할 수 있으므로 나중에 어떤 종류의 어려움도 겪지 않고 동일한 작업을 수행할 수 있습니다.
파이썬에는 두 가지 유형의 데이터 구조가 있습니다. Python이 암시적으로 지원하는 데이터 구조는 Set, Dictionary, List 및 Tuple입니다. 이것은 파이썬의 내장 데이터 구조입니다.
그런 다음 기능을 더 잘 제어하기 위해 직접 만들 수 있는 데이터 구조가 있습니다. 이들은 사용자 정의 데이터 구조이며 연결 목록, 그래프, 트리, 스택, 큐 및 해시맵을 포함합니다. 사용자 정의 데이터 구조는 다른 프로그래밍 언어에서도 사용할 수 있습니다.
더 읽어보기: R에서 가장 일반적으로 사용되는 6가지 데이터 구조
Python의 내장 데이터 구조
Python에는 여러 내장 데이터 구조가 있습니다. 이러한 통합 데이터 구조는 프로그래밍 문제를 빠르고 쉽게 해결하는 데 도움이 됩니다. 앞에서 언급했듯이 Python에는 다음과 같은 통합 데이터 구조가 있습니다.
- 사전
- 기울기
- 세트
- 튜플
각각에 대해 자세히 논의해 보겠습니다.
1. 사전
우리는 사전을 사용하여 키-값 쌍을 저장합니다. 물리적 사전에 그 의미와 함께 단어가 저장되어 있는 것처럼 Python의 사전은 키-값 쌍을 저장합니다. 용어는 키인 반면 해당 단어와 관련된 다양한 의미는 값입니다. 값을 사용하여 키에 액세스할 수 있습니다.
꽃꽂이로 사전을 만들 수 있습니다. 이 목적으로 dict() 함수를 사용할 수도 있습니다. 다음은 예입니다.
my_dict = {} #빈 사전
인쇄(my_dict)
my_dict = {1: 'A', 2: 'B'} #요소가 있는 사전
인쇄(my_dict)
위 코드의 출력:
{}
{1: 'A', 2: 'B'}
키를 통해 사전의 값을 변경할 수 있습니다. 값을 변경하려면 먼저 키에 액세스해야 합니다. 키를 찾았으면 원하는 결과를 얻기 위해 필요한 키-값 쌍을 추가하기만 하면 됩니다.
my_dict = {'첫 번째': 'A', '두 번째': 'B'}
인쇄(my_dict)
my_dict['Second'] = 'C++' #요소 변경
인쇄(my_dict)
my_dict['Third'] = 'Ruby' #키-값 쌍 추가
인쇄(my_dict)
위 코드의 출력:
{'첫 번째': 'A', '두 번째': 'B'}
{'첫 번째': 'A', '두 번째': 'C'}
{'첫 번째': 'A', '두 번째': 'C', '세 번째': 'D'}
pop() 함수를 사용하여 사전에서 값을 삭제할 수 있습니다. pop() 함수는 삭제한 값을 반환합니다. popitem() 함수를 통해 키-값 쌍을 검색할 수 있습니다. 쌍의 튜플을 반환합니다. clear() 함수를 사용하여 사전 전체를 지울 수도 있습니다. 예는 다음과 같습니다.
my_dict = {'첫 번째': 'A', '두 번째': 'B'', '세 번째': 'C'}
a = my_dict.pop('세 번째') #팝 요소
print('값:', a)
print('사전:', my_dict)
b = my_dict.popitem() #키-값 쌍 팝업
print('키, 값 쌍:', b)
print('사전', my_dict)
my_dict.clear() #빈 사전
인쇄('n', my_dict)
위 코드의 출력:
값: C
사전: {'첫 번째': 'A', '두 번째': 'B'}
키, 값 쌍: ('초', 'B')
사전 {'첫 번째': 'A'}
{}
더 읽어보기: Python 프로젝트 아이디어 및 주제
2. 목록
목록을 사용하여 데이터를 순차적으로 저장합니다. 목록의 모든 요소에는 인덱스라고도 하는 주소가 있습니다. 목록의 인덱스 값은 0에서 목록에 있는 마지막 요소까지 이동하며 그 이름은 양수 인덱싱입니다. 마찬가지로 마지막 요소에서 첫 번째 요소로 돌아가서 -1부터 세는 것을 음수 인덱싱이라고 합니다.
대괄호를 사용하여 목록을 만들고 필요에 따라 요소를 추가할 수 있습니다. 대괄호를 비워 두면 목록에 요소가 없으며 마찬가지로 비어 있습니다. 다음은 목록의 예입니다.
my_list = [] #빈 목록 생성
인쇄(my_list)
my_list = [A, B, C, 'example', Z] #데이터가 있는 목록 생성
인쇄(my_list)
위 코드의 출력:
[]
[A, B, C, '예시', Z]
insert(), extent() 및 append() 함수를 사용하여 목록에 요소를 추가할 수 있습니다. insert() 함수는 인덱스 값에 전달된 요소를 추가합니다. insert() 함수는 목록의 크기도 늘립니다.
append() 함수를 사용하면 전달된 모든 요소를 단일 요소로 추가할 수 있습니다. 반면에, extend() 함수는 요소를 하나씩 추가할 수 있습니다.
다음은 예입니다.
my_list = [A, B, C]
인쇄(my_list)
my_list.append([555, 12]) #단일 요소로 추가
인쇄(my_list)
my_list.extend([234, 'more_example']) # 다른 요소로 추가
인쇄(my_list)
my_list.insert(1, 'insert_example') #요소 추가 i
인쇄(my_list)
위 코드의 출력:
[A,B,C]
[A,B,C,[555,12]]
[A, B, C, [555, 12], 234, 'more_example']

[A, 'insert_example', B, C, [555, 12], 234, 'more_example']
목록으로 작업하는 동안 일부 요소도 제거해야 할 필요가 있습니다. 'del'키워드를 사용할 수 있습니다. Python의 내장 키워드이며 아무 것도 반환하지 않습니다. 요소를 되돌리려면 pop() 함수를 사용해야 하고 값을 통해 요소를 제거하려면 remove() 함수를 사용해야 합니다. 예는 다음과 같습니다.
my_list = [A, B, C, '예시', Z, 10, 30]
del my_list[5] #인덱스 5의 요소 삭제
인쇄(my_list)
my_list.remove('example') #값이 있는 요소 제거
인쇄(my_list)
a = my_list.pop(1) #목록에서 요소를 팝
print('팝된 요소: ', a, ' 남은 목록: ', my_list)
my_list.clear() #목록 비우기
인쇄(my_list)
위 코드의 출력:
[A, B, C, '예시', Z, 30]
[A,B,C,Z,30]
터진 요소: 2 남은 목록: [A, C, Z, 30]
[]
파이썬에서 인덱스 값을 전달하고 필요한 값을 얻을 수 있습니다.
my_list = [A, B, C, '예시', Z, 10, 30]
my_list의 요소: #요소에 하나씩 액세스
인쇄(요소)
print(my_list) #모든 요소에 액세스
print(my_list[3]) #액세스 인덱스 3 요소
print(my_list[0:2]) #0에서 1까지 요소에 액세스하고 2를 제외합니다.
print(my_list[::-1]) # 역순으로 요소에 액세스
위 코드의 출력:
ㅏ
비
씨
예시
지
10
30
[A, B, C, '예시', Z, 10, 30]
예시
[에이,비]
[30, 10, Z, '예시', 3, 2, 1]
3. 세트
고유하고 정렬되지 않은 항목의 모음을 집합이라고 합니다. 따라서 어떤 이유로 데이터를 반복하면 집합에 한 번만 나타납니다. Python의 집합은 수학에서 읽은 집합과 유사합니다. 속성에서 기능에 이르기까지 많은 유사점을 찾을 수 있습니다.
중괄호를 사용하고 해당 값을 전달하여 집합을 만들 수 있습니다. 다음은 예입니다.
my_set = {A, B, C, D, E, E, E} #세트 생성
인쇄(my_set)
위 코드의 출력:
{에이 비 씨 디이}
앞서 언급했듯이 Python 집합의 산술 연산에서 수행하는 집합의 모든 기능을 수행할 수 있습니다. Union() 함수를 사용하면 두 세트에 있는 데이터를 결합할 수 있습니다. Intersection() 함수는 언급된 두 세트에 모두 존재하는 데이터를 제공합니다.
두 세트 모두에서 사용 가능한 데이터를 삭제할 수 있도록 하고 그들 사이에서 공통적이지 않은 데이터를 제공하는 difference() 함수가 있습니다. symmetric_difference() 함수는 해당 세트에 남아 있는 데이터를 제공합니다.
my_set = {A, B, C, D}
my_set_2 = {C, D, E, F}
print(my_set.union(my_set_2), '———-', my_set | my_set_2)
print(my_set.intersection(my_set_2), '———-', my_set & my_set_2)
print(my_set.difference(my_set_2), '———-', my_set – my_set_2)
print(my_set.symmetric_difference(my_set_2), '———-', my_set ^ my_set_2)
my_set.clear()
인쇄(my_set)
위 코드의 출력:
{A, B, C, D, E, F} ———- {A, B, C, D, E, F}
{C, D} ———- {C, D}
{A, B} ———- {A, B}
{A, B, E, F} ———- {A, B, E, F}
세트()
읽어보기: 인도의 Python 개발자 급여
4. 튜플
튜플은 목록과 유사하지만 튜플에 데이터를 입력하면 변경 가능하지 않은 한 변경할 수 없습니다. 그것들을 이해하는 것은 약간 까다로울 수 있지만 걱정하지 마십시오. 우리의 예제 코드가 그런 점에서 도움이 될 것입니다. tuple() 함수를 사용하여 튜플을 만들 수 있습니다.
my_tuple = (A, B, C) #튜플 생성
인쇄(my_tuple)
위 코드의 출력:
(A, B, C)
튜플의 값에 액세스하는 방법은 목록과 동일합니다.
my_tuple2 = (A, B, C, '업그레이드') #요소 접근
my_tuple2의 x에 대해:
인쇄(x)
인쇄(my_tuple2)
인쇄(my_tuple2[0])
인쇄(my_tuple2[:])
위 코드의 출력:
ㅏ
비
씨
업그레이드
(A, B, C, '업그레이드')
ㅏ
(A, B, C, '업그레이드')
결론
이제 Python의 다양한 데이터 구조에 익숙해졌을 것입니다. 이 기사가 유용했기를 바랍니다. 데이터 구조는 데이터를 구성, 관리 및 액세스하는 데 중요한 역할을 합니다. 선택할 수 있는 옵션이 많이 있으며 각 옵션에는 고유한 용도가 있습니다.
파이썬과 데이터 구조에 대해 더 알고 싶다면 우리 과정을 살펴봐야 합니다.
데이터 과학에 대한 모든 것인 파이썬에 대해 배우고 싶다면 일하는 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 멘토링을 제공하는 IIIT-B & upGrad의 데이터 과학 PG 디플로마를 확인하십시오. 전문가, 업계 멘토와의 1:1 학습, 최고의 기업과의 400시간 이상의 학습 및 직업 지원.
사전 데이터 유형은 언제 사용됩니까?
사전은 키와 값 쌍에 저장되는 데이터 모음으로 Python에서 사용되는 귀중한 데이터 유형으로 정의할 수 있습니다. 이제 사전의 값은 모든 데이터 유형이 될 수 있지만 키는 튜플, 정수 또는 문자열과 같은 변경할 수 없는 데이터 유형이어야 합니다.
사전은 전체 데이터 컬렉션을 거치지 않고 즉시 값을 찾고 싶을 때 매우 편리합니다. 그 외에도 사전은 데이터의 순서가 중요하지 않을 때 매우 유용합니다. 딕셔너리 데이터 유형은 목록 및 튜플에 비해 더 많은 공간을 차지하는 경향이 있기 때문에 메모리 고려가 중요한 요소가 아닐 때 선호됩니다.
목록과 튜플의 차이점은 무엇입니까?
목록과 튜플은 모두 파이썬에서 데이터 컬렉션을 저장하는 데 유용한 시퀀스 데이터 유형입니다. 둘 사이의 가장 중요한 차이점은 목록은 변경 가능하지만 튜플은 변경할 수 없다는 것입니다. 게다가 반복의 의미는 목록의 것과 비교하여 튜플에서 훨씬 더 빠릅니다.
삽입 및 삭제 작업을 수행하려는 경우 목록을 사용하면 쉽게 할 수 있습니다. 동시에 요소는 튜플에서 더 잘 액세스할 수 있습니다. 데이터 구조의 사용을 결정하는 또 다른 중요한 요소는 메모리입니다. 여기서 목록은 튜플에 비해 더 많은 메모리를 소비하는 경향이 있습니다.
집합은 목록과 어떻게 다른가요?
목록은 항상 동질일 필요는 없기 때문에 Python에서 가장 강력한 도구로 간주됩니다. 목록과 집합 모두 모든 종류의 데이터 유형을 포함할 수 있습니다. 이제 목록에는 중복 요소가 포함될 수 있지만 집합에는 중복 요소가 포함될 수 없으며 집합에서 단순히 사라집니다.
요소의 순서는 목록에서 유지되지만 집합은 요소의 순서를 유지할 수 없습니다. 목록은 계산 공간을 많이 차지하기 때문에 결국 엄청난 시간이 걸립니다. 반면에 집합은 조회를 수행하기 위해 해싱을 사용하며 결과적으로 목록보다 훨씬 빠릅니다.