Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 데이터 구조

데이터 구조는 프로그래밍에서 필수적입니다. 액세스 및 수정이 효율적인 방식으로 데이터를 구성, 저장 및 관리하는 데 사용됩니다.

매주 많은 양의 빨래를 한다고 상상해 보십시오. 이상적으로는 아침에 외출하기 전에 쉽게 접근할 수 있도록 양말, 티셔츠, 바지 및 식료품을 별도의 서랍에 분리해 두는 것이 좋습니다. 데이터 구조를 준비하고 있습니다. 이제 이러한 모든 소지품을 정리하지 않고 하나의 단일 서랍이나 여러 서랍에 던진다고 상상해 보십시오. 당신이 일을 하거나 밤을 보낼 때 괜찮은 사람이 되는 데 얼마나 걸릴 거라고 생각합니까? 이것은 데이터 구조 없이 준비 중입니다.

이 기사에서는 Python이 제공해야 하는 내장 데이터 구조에 대해 자세히 알아봅니다.

Python에 내장된 데이터 구조

Python의 내장 데이터 구조에는 목록, 사전, 튜플 및 집합이 포함됩니다.

목록

목록은 다른 요소나 부분을 가질 수 있는 변경 가능한(변경 가능한) 데이터 구조입니다. 즉, 단일 목록에 다양한 데이터 유형이 포함될 수 있습니다.

 list =['string', 300, (2, 4), '이전 데이터 유형은 튜플이었습니다']

목록 데이터 구조에는 목록 자체를 추가, 제거 또는 조작하는 데 사용되는 11가지 방법이 있습니다.

목록에 요소 추가

  • append():append() 메서드는 단일 항목을 목록에 추가합니다.
 list =['string, next is tupel', (2, 1), 3] list.append(500) print(list) # 출력 ['string, next is tupel', (2, 1), 3 , 500]
  • extend():extend() 메서드는 iterable의 모든 항목별로 목록을 추가합니다. 다음과 같은 점에서 append()와 다릅니다.
list =['string, next is tupel', (2, 1), 3] list.append((8, 9)) print(list) # 출력 ['string, next is tupel', (2, 1), 3, (8, 9)] # append()는 (8, 9)를 튜플로 남겨둡니다. 
list =['string, next is tupel', (2, 1), 3] list.extend((8, 9)) print(list) # 출력 ['string, next is tupel', (2, 1), 3, 8, 9] # extend()가 (8, 9)를 튜플로 남겨두지 않았음을 주목
  • insert():insert() 메서드는 주어진 위치 또는 인덱스에 항목을 삽입합니다. 첫 번째 인수는 삽입해야 하는 요소의 인덱스이고 두 번째 인수는 요소 자체입니다.
 list =['string, next is tupel', (2, 1), 3] list.insert(0, 700) print(list) # 출력 [700, 'string, next is tupel', (2, 1), 3]# 0 인덱스에 700 삽입

목록에서 요소 제거

  • remove():remove() 메소드는 주어진 값을 포함하는 목록의 첫 번째 항목을 제거합니다.
 list =['string, next is tupel', (2, 1), 3, 8, 3] list.remove(3) print(list) # 출력 ['string, next is tupel', (2, 1), 8, 3]
  • pop():pop() 메서드는 주어진 위치에서 값을 제거하지만 인덱스가 제공되지 않으면 마지막 항목을 제거합니다.
 list =['string, next is tupel', (2, 1), 3] list.pop(0) print(list) # 출력 [(2, 1), 3]
 list =['string, next is tupel', (2, 1), 3] list.pop() print(list) # 출력 ['string, next is tupel', (2, 1)]  
  • clear():clear() 메서드는 인수를 사용하지 않습니다. 목록에서 모든 항목을 제거합니다.
 list =['string, next is tupel', (2, 1), 3] list.clear() print(list) # 출력 []

기타 목록 방법

  • index():index() 메서드는 주어진 값의 인덱스를 반환합니다.
 list =[8, 20, 1, 9, 2, 3, 937, 0] print(list.index(9)) # 3을 출력 
  • count():count() 메서드는 목록에서 값이 몇 번 발생하는지 계산합니다.
 list =[8, 20, 1, 8, 2, 8, 937, 8] print(list.count(8)) # 4를 인쇄합니다.
  • sort():sort() 메서드는 인수와 함께 또는 인수 없이 사용할 수 있으며 사용자 정의 정렬에 사용할 수 있습니다.
 list =[8, 20, 1, 9, 2, 3, 937, 0] list.sort() print(list) # 출력 [0, 1, 2, 3, 8, 9, 20, 937] 
 list =[8, 20, 1, 9, 2, 3, 937, 0] list.sort(reverse=True) print(list) # 출력 [937, 20, 9, 8, 3, 2, 1 , 0]
  • reverse():reverse 메소드는 사용자 정의된 정렬 인수를 사용하는 위의 정렬 메소드와 매우 유사하게 목록의 요소를 제자리에서 뒤집습니다.
 list =[8, 20, 1, 9, 2, 3, 937, 0] list.reverse() print(list) # 출력 [0, 937, 3, 2, 9, 1, 20, 8] 
  • copy():copy() 메서드는 단순히 목록의 복사본을 반환합니다.
 list =[8, 20, 1, 9, 2, 3, 937, 0] list.copy() print(list) # 출력 [8, 20, 1, 9, 2, 3, 937, 0] 

튜플

튜플은 괄호 안에 있는 데이터입니다. 목록과 달리 변경할 수 없으며(변경할 수 없음을 의미함) 목록보다 빠릅니다. 그것들은 불변하기 때문에 사전의 키로 사용할 수도 있습니다. 튜플은 함수에서 여러 결과를 반환하려는 경우에도 사용할 수 있습니다.

연결을 사용하여 튜플에 데이터를 추가할 수 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

 튜플 =(1, 2, 3) print(튜플) # 출력 (1, 2, 3) 튜플 =튜플 + (4, 5, 6) print(튜플) # (1, 2, 3, 4 출력 , 5, 6)

사전

사전은 JavaScript의 객체와 같은 키 값 쌍을 보유하는 데이터 구조입니다. 목록과 마찬가지로 이러한 데이터 구조는 변경 가능합니다. 즉, 데이터를 변경할 수 있습니다.

키 값 쌍의 예는 사람의 특성과 해당 특성에 대한 설명입니다. 이름, 나이, 키 및 체중이 모두 키가 될 수 있습니다. Josh, 33, 5'10, 180lbs는 모두 해당 키의 값일 수 있습니다.

 dict ={'이름':'조쉬', '나이':33, '키':"5'10", '체중':'180파운드' }

사전은 변경 가능하므로 'Josh'를 다른 이름으로 변경할 수 있습니다.

 dict ={'이름':'조쉬', '나이':33, '키':"5'10", '체중':'180파운드' } dict['이름'] ='패트릭' 인쇄 (dict) # {'name':'Patrick', 'age':33, 'height':"5'10", 'weight':'180lbs'}를 출력합니다.

새로운 키 값 쌍을 생성하여 값을 추가할 수 있습니다.

dict ={'이름':'조시', '나이':33, '키':"5'10", '체중':'180파운드' } dict['위치'] ='샌프란시스코' print(dict)# {'name':'Josh', 'age':33, 'height':"5'10", 'weight':'180lbs', 'location':'San Francisco'} 

del 키워드, pop() 또는 popitem() 메서드를 사용하여 사전에서 키 값 쌍을 삭제할 수도 있습니다. 사전에서 pop()은 인수를 취해야 하므로 사전에서 마지막 키 값 쌍에서 제거하려면 popitem()이 필요합니다.

dict ={'이름':'조쉬', '나이':33, '키':"5'10", '체중':'180파운드' } del dict['이름']print(dict) # {'age':33, 'height':"5'10", 'weight':'180lbs'} 출력}
dict ={'이름':'조시', '나이':33, '키':"5'10", '체중':'180파운드' } dict.pop('이름')print(dict )# {'나이':33, '키':"5'10", '체중':'180파운드'}을 출력합니다.
dict ={'name':'Josh', 'age':33, 'height':"5'10", 'weight':'180lbs' } dict.popitem()print(dict)# 인쇄 {'이름':'조시', '나이':33, '키':"5'10"}

키만 인쇄하거나 사전의 값만 인쇄할 수도 있습니다.

dict ={'name':'Josh', 'age':33, 'height':"5'10", 'weight':'180lbs' } print(dict.keys())# dict_keys 인쇄 (['이름', '나이', '키', '체중'])
dict ={'name':'Josh', 'age':33, 'height':"5'10", 'weight':'180lbs' } print(dict.values())# dict_values ​​출력 (['조시', 33, "5'10", '180파운드'])

키 값 쌍으로 인쇄하려면 items() 메서드를 사용할 수 있습니다.

dict ={'name':'Josh', 'age':33, 'height':"5'10", 'weight':'180lbs' } print(dict.items())# dict_items 인쇄 ([('이름', '조시'), ('나이', 33), ('키', "5'10"), ('체중', '180파운드')])

세트

집합은 고유한 요소의 변경 가능하고 순서가 지정되지 않은 컬렉션입니다. 즉, 중복 요소가 포함되지 않습니다. 집합은 둘 다 중괄호 안에 데이터를 보관한다는 점에서 사전처럼 보이지만 사전과 달리 집합에는 키 값 쌍이 없습니다.

set ={1, 2, 2, 2, 3, 3, 4, 4} print(set)# 출력 {1, 2, 3, 4}

add() 메서드를 사용하여 집합에 요소를 추가할 수 있습니다.

세트 ={1, 2, 2, 2, 3, 3, 4, 4} set.add(5)print(set)# 인쇄 {1, 2, 3, 4, 5}

집합을 사용할 때 사용할 수 있는 다른 네 가지 메서드, union(),intersection(), difference() 및 symmetric_difference()가 있습니다.

  • union():union() 메서드는 두 개의 차이점 집합을 통합하여 둘의 공통점을 가져와서 중복되지 않은 단일 집합으로 생성합니다.
set ={1, 2, 2, 2, 3, 3, 4, 4} set.add(5)print(set)# 출력 {1, 2, 3, 4, 5} anotherSet ={3, 3, 4, 4, 5, 5, 6}print(set.union(anotherSet))# 출력 {1, 2, 3, 4, 5, 6}
  • intersection():교차 방법은 두 집합에서 공통 요소를 찾습니다.
set ={1, 2, 2, 2, 3, 3, 4, 4} set.add(5)print(set)# 출력 {1, 2, 3, 4, 5} anotherSet ={3, 3, 4, 4, 5, 5, 6}print(set.intersection(anotherSet))# 출력 {3, 4, 5}
  • difference():차이점 방법은 모든 공통점을 제거하고 첫 번째 집합에서 남은 것을 인쇄한다는 점에서 교집합 방법과 반대입니다.
set ={1, 2, 2, 2, 3, 3, 4, 4} set.add(5)print(set)# 출력 {1, 2, 3, 4, 5} anotherSet ={3, 3, 4, 4, 5, 5, 6}print(set.difference(anotherSet))# 출력 {1, 2}
  • symmetric_difference():symmetric_difference() 메서드는 출력에서 ​​두 세트의 차이를 얻는다는 점을 제외하고 차이 메서드와 동일합니다.
set ={1, 2, 2, 2, 3, 3, 4, 4} set.add(5)print(set)# 출력 {1, 2, 3, 4, 5} anotherSet ={3, 3, 4, 4, 5, 5, 6}print(set.symmetric_difference(anotherSet))# 출력 {1, 2, 6}