티스토리 뷰
Python의 자료구조에는 크게 4가지가 있다.
1. List
List는 Python의 기본 자료구조에 속한다.
앞뒤에 주소가 달리는 형태로 이루어져 있는데, JAVA에서 배열과 같은 형태로 데이터를 저장한다.
List는 다음과 같이 만들어 진다.
리스트이름 = [요소1, 요소2, 요소3, .... ]
리스트는 순서가 있는 값들의 집합으로써, 데이터에 하나하나 이름을 붙이지 않고 번호를 통해 각각의 데이터에 접근한다.
즉, 인덱싱을 통해 데이터에 접근한다.
print(data1[0])
>> 10
List의 장점은 data type이 없다는 것이다.
즉, List는 숫자형 데이터, 문자형 데이터를 둘 다 저장 가능하다.
lists =[ 1,100, 'python']
print(lists)
>> [1, 100, 'python']
리스트 연산
1) 리스트 슬라이싱
data2 = ["사과", "배", "포도", "딸기", "토마토", "메론"]
print(data2[2:4])
>> ['포도', '딸기']
2) 리스트 병합
data1 + data2
>> [10, 20, 30, 40, 50, 60, '사과', '배', '포도', '딸기', '토마토', '메론']
3) 리스트 데이터 추가 및 삭제
lists =[ 1,100, 'python']
lists.append('py')
print(lists)
>> [1, 100, 'python', 'py']
lists.insert(1, '0.5')
print(lists)
lists.remove('py')
print(lists)
>>
[1, '0.5', 100, 'python', 'py']
[1, '0.5', 100, 'python']
4) 최대값 최소값 구하기
data_list = [10,20,30,40,50,60,70]
print(min(data_list))
print(max(data_list))
>>
10
70
5) 데이터 정렬
data_list = [50,20,40,30,10,60,90]
data_list.sort()
>> [10, 20, 30, 40, 50, 60, 90]
2. TUPLE ( 튜플 )
튜플은 순서가 있는 자료 구조이며, 저장방식은 리스트와 같지만, 데이터의 직접 변경이 불가능하다는 점에서 리스트와 다르다.
즉, append, insert등의 함수가 사용불가하고, data[0] = 100과 같이 인덱싱을 통한 데이터 변경이 불가하다.
하지만, 튜플은 리스트에 비해 접근 속도가 빠르다는 장점이 있기 때문에 함수의 매개변수, 리턴값으로 자주 사용한다.
튜플은 다음과 같이 만들어 진다.
튜플이름 = (요소1, 요소2, 요소3, .... )
data = ('사과', '배', '포도', '토마토', '딸기')
print(data)
>> ('사과', '배', '포도', '토마토', '딸기')
튜플 연산
1) 튜플 슬라이싱
data = (100, 200, 100, 300, 100, 500)
print(data[2:4])
>> (100, 300)
2) 튜플 병합
fruit = ('사과', '배', '포도', '토마토', '딸기')
total_data = fruit + data
print(total_data)
>> ('사과', '배', '포도', '토마토', '딸기', 100, 200, 100, 300, 100, 500)
3) 튜플 데이터 반복
print(data * 2)
>>(100, 200, 100, 300, 100, 500, 100, 200, 100, 300, 100, 500)
3. SET ( 세트 )
세트는 우리가 수학에서 배웠던 집합의 개념이다.
순서가 없고, 중복을 허용하지 않는다.
변경가능한 객체이므로, 데이터를 추가하거나 삭제가 가능하지만, 인덱스가 없으므로, 인덱싱과 연산은 불가하다.
세트은 다음과 같이 만들어 진다.
세트이름 = {항목1, 항목2, 항목3, 항목4 .... }
data = {100,200,300,400,500,600}
print(data)
>> {100, 200, 300, 400, 500, 600}
세트 연산
1)데이터 추가.
data = {100,200,300,400,500,600}
data.add(700)
print(data)
>> {100, 200, 300, 400, 500, 600, 700}
2)데이터 업데이트
data = {100}
data.update([200,300])
print(data)
>> {200, 100, 300}
3)데이터 삭제
data.remove(300)
print(data)
>> {200, 100}
4)세트 데이터 초기화
data.clear()
print(data)
>> set()
SET - 집합연산
1)교집합
A = {100,200,300,400,500}
B = {100,150,200,250,300}
print(A.intersection(B))
>> {200, 100, 300}
2)차집합
print(A.difference(B))
>> {400, 500}
3)합집합
print(A.union(B))
>> {100, 200, 300, 400, 500, 150, 250}
4. DICTIONARY ( 딕셔너리 )
사전이라는 의미의 딕셔너리는 데이터를 key와 value로 나누어 담고 있다.
딕셔너리는 set과 같이 순서가 없지만, 검색속도가 빠르다는 장점이 있다.
딕셔너리는 다음과 같이 만들어 진다.
딕셔너리이름 = { "key1" : value1, "key2" : value2, "key3" : value3, .... }
data = {"사과" : 300, "배" : 200, "포도" : 500, "딸기" : 700}
print(data)
>> {'사과': 300, '배': 200, '포도': 500, '딸기': 700}
딕셔너리 연산
1)항목검색
data = {"사과" : 300, "배" : 200, "포도" : 500, "딸기" : 700}
print(data["사과"])
print(data.get("사과"))
>> 300
300
2)항목추가
data["메론"] = 1000
print(data)
>> {'사과': 300, '배': 200, '포도': 500, '딸기': 700, '메론': 1000}
3)항목삭제
data.pop("사과")
print(data)
>> {'배': 200, '포도': 500, '딸기': 700, '메론': 1000}
4)항목정렬
print(sorted(data))
print(sorted(data.values()))
>> ['딸기', '메론', '배', '포도']
[200, 500, 700, 1000]
'PYTHON' 카테고리의 다른 글
Numpy & Pandas (0) | 2019.10.26 |
---|