PYTHON 데이터 구조 및 알고리즘
python에는 두 가지 유형의 데이터 구조가 있다.데이터 구조 및 사용자 정의 데이터 구조 내장
###내장형 데이터 구조
이것들은python에서 미리 불러오는 데이터 구조입니다.그것들은 사전, 목록, 집합, 원조를 포함한다.
1. 명세서
my_list=[] #create an empty list
my_list=[1,3,4, 'example ',3.142]
print(my_list) #prints (1,3,4, 'example' , 3.142)
목록을 조작할 수 있는 방법은 매우 많다. 예를 들어 원소를 추가하고, 원소를 삭제하고, 원소에 접근할 수 있다.요소 추가
my_list=[1,2,3]
print(my_list)#outputs
my_list.append([66, 67, 'another example'])
print(my_list)#outputs [1,2,3 [66,67, 'another example']]
my_list.insert(2, 'insert example')
print(my_list)#outputs [1,2, 'insert example',3 [66,67, 'another example']]
요소 삭제요소를 삭제하려면 Python에 내장된del 키워드를 사용하지만 내용을 반환하지 않습니다.
my_list=[1,2,3, 'example',69,'example2', 3.142]
print(my_list)
del my_list[5]#removes element index 5 from list
print(my_list)#outputs[1,2,3, 'example',69, 3.142]
my_list.remove('example')#removes element with the value 'example' from the list
print(my_list)#outputs [1,2,3,69, 3.142]
my_list.pop(3)#pops element with index 3 from the list
print(my_list)#output [1,2,3, 3.142]
my_list.clear()#clears the list
print(my_list)#outputs an empty list
목록에서 요소 액세스색인 값을 전달하여 필요한 색인에 있는 요소에 접근합니다.
#accessing elements
my_list=[1,2,3, 'example',69,'example2', 3.142, 678, 'last element']
for element in my_list: #access elements one by one
print(element)
print(my_list)#access the whole list
print(my_list[2:5])#access element from index 2 to 5
print(my_list[-1])#access list in reverse
이 bsic 함수를 제외하고는 목록의 길이를 표시하는len()과 목록을 정렬하는sort() 등 다른 함수도 있다.다원 그룹
원조는 목록과 유사하지만, 질서정연하고 변경할 수 없는 집합이다.원조를 만들려면 괄호()를 사용합니다.
예.
#create a tuple
my_tuple=(1,44,3.142, 'tuple example')
print(my_tuple)
대부분의 모듈을 조작하는 함수는 내가 위에서 보여준 목록과 유사하지만 다음과 같은 예외가 있다.원조를 추가하려면 + 기호를 사용합니다
my_tuple=(1,44,3.142, 'tuple example')
print(my_tuple)
my_tuple=my_tuple+(4,4,6,'another tuple')#append a tuple
print(my_tuple)#output (1, 44, 3.142, 'tuple example', 4, 4, 6, 'another tuple')
사전.
데이터 값은 사전을 사용하여 키:value 쌍에 저장됩니다.
사전은 질서정연하고 변경할 수 있으며 중복을 허용하지 않는 집합이다.
중괄호나 dict () 함수를 사용하여 사전을 만들 수 있습니다.사전을 사용할 때 키 값 쌍을 추가해야 합니다.
자전을 쓰다
_dict={}
dict['one']='This is one'
dict[2]='This is two'
tinydict={'name':'John','code':'6000', 3:'zendaya'}
print (dict['one'])
print (dict[2])
print (tinydict)#outputs {'name': 'John', 'code': '6000', 3: 'zendaya'}
tinydict
print(tinydict.keys())# outputs dict_keys(['name', 'code', 3])
print(tinydict.values())#outputs dict_values(['John', '6000', 'zendaya'])
또는my_dict={1:'name', 2:'age'}
print(my_dict)#ouputs {1:'name', 2:'age'}
사전에서 값을 변경하고 추가하는 것은 키로 이루어집니다.tinydict['code']= 7000#changes the element to 7000
print(tinydict)
tinydict[4]='casie'# adds a new pair entry
print(tinydict)
* 값 삭제*
del tinydict['name']#deletes the element with that value
print(tinydict) #outputs {'code': 7000, 3: 'zendaya', 4: 'casie'
tinydict.pop(4) #removes element with that value
print(tinydict)#outputs{'code': 7000, 3: 'zendaya'}
키를 사용하여 요소 액세스print(tinydict['code']) #outputs element with key ''code
설정
컬렉션은 순서가 없고 변경할 수 없으나 항목을 삭제하고 새 항목을 추가할 수 있는 고유하고 인덱스되지 않은 컬렉션입니다.그것들은 괄호로 만든 것이다.
myset={3,3,3,4,4,5,5,5,23,34,23,65,56,77}
print(myset)#outputs{65, 34, 3, 4, 5, 77, 23, 56}
집합에서 중복 문자는 하나만 출력됩니다.요소 추가
한 번에 하나의 요소만 추가할 수 있습니다.
my_set.add('zendaya')
print(my_set)#outputs {65, 34, 3, 4, 5, 77, 'zendaya', 23, 56}
조종 집합my_set={65, 34, 3, 4, 5, 77, 'zendaya', 23, 56}
print(my_set)
my_set2={3.142,33,44, 3,3,5,5, 4,56, 'new zendaya', 'zendaya'}
print(my_set2)
#manipulating sets
print(my_set.union(my_set2))#outputs {'zendaya', 65, 34, 3, 4, 5, 33, 3.142, 44, 77, 'new zendaya', 23, 56}
print(my_set.intersection(my_set2)) #outputs {'zendaya', 3, 4, 5, 56}
print(my_set.difference(my_set2))#outputs {65, 34, 77, 23}
print(my_set.symmetric_difference(my_set2))#outputs {33, 65, 3.142, 'new zendaya', 34, 44, 77, 23}
**
2. 사용자 정의 데이터 구조**
파이썬 사용자는 자신의 기능을 완전히 제어할 수 있는 데이터 구조를 만들 수 있다.가장 흔히 볼 수 있는 데이터 구조는 창고, 대기열, 트리, 체인 테이블 등이며, 이 모든 것은 다른 프로그래밍 언어에서 사용할 수 있다.
줄을 서다
대기열은 선입선출(FIFO) 원칙을 바탕으로 하는 선형 데이터 구조로 선입선출된 데이터가 먼저 접근된다는 것을 의미한다.그것은 대기열의 머리와 끝에서 실행할 수 있는 작업, 즉 앞뒤와 등 대등을 포함하는 그룹 구조를 사용한다.대기열 생성 및 엑시트 작업에는 어셈블리 추가 및 삭제, 어셈블리 액세스가 포함됩니다.대열은 교통 체증과 운영체제의 작업 스케줄링 등을 처리하는 데 네트워크 버퍼로 사용된다.
쌓아올리다
스택은 후진선출(LIFO) 원칙을 바탕으로 하는 선형 데이터 구조로 마지막으로 삽입된 데이터가 첫 번째로 접근된 데이터라는 것을 의미한다.이것은 밀어냄 (추가) 요소, 팝업 (삭제) 요소, 창고 맨 위에서만 접근하는 등 그룹 구조를 사용하여 구축된 것입니다.이 위쪽은 창고의 현재 위치를 가리키는 지침입니다.컴파일러 프로그래밍, 단어 반전, 단어 편집기의 취소 시스템 및 기타 응용 프로그램이 널리 사용되고 있습니다.
그림 1.
그래픽은 데이터를 정점(노드) 및 모서리(연결)(모서리) 형식으로 저장하는 데 사용됩니다.실제 세계 지도의 가장 정확한 표현은 도형에서 찾을 수 있다.그들은 서로 다른 데이터 점(노드라고 부른다) 사이의 거리를 계산하는 각종 대가를 통해 최소 경로를 발견한다.
네스트된 목록
연결 목록은 포인터를 통해 연결된 선형 데이터 구조이지 순서대로 저장하는 것이 아니다.체인 테이블 노드는 데이터와next라는 바늘로 구성되어 있습니다.이러한 구조는 이미지 뷰어, 음악 플레이어 및 기타 응용 프로그램에 가장 많이 사용된다.
배열 및 목록
하나의 예외를 제외하고, 수조와 목록은 같은 구조이다.목록은 이기종 데이터 요소를 저장할 수 있지만, 진열은 동질 구성 요소만 저장할 수 있습니다.
Reference
이 문제에 관하여(PYTHON 데이터 구조 및 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mainashem/data-structures-and-algoriyhms-with-python-7c0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)