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