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에서 가장 강력한 도구로 간주됩니다. 목록과 집합 모두 모든 종류의 데이터 유형을 포함할 수 있습니다. 이제 목록에는 중복 요소가 포함될 수 있지만 집합에는 중복 요소가 포함될 수 없으며 집합에서 단순히 사라집니다.

요소의 순서는 목록에서 유지되지만 집합은 요소의 순서를 유지할 수 없습니다. 목록은 계산 공간을 많이 차지하기 때문에 결국 엄청난 시간이 걸립니다. 반면에 집합은 조회를 수행하기 위해 해싱을 사용하며 결과적으로 목록보다 훨씬 빠릅니다.