3. 복합형 : 클래스, 배열, 리스트, 딕셔너리
- 리스트
- 딕셔너리
[리스트]
- 요소들의 모음을 나타내는 자료형.
- 요소들은 []로 감싼다.
- 모든 자료형을 담을 수 있다.

※ list안에 list 넣을 수 있다!
- 인덱싱

- 리스트 연산
+ 연산자 : 순서대로 연결하여 하나의 리스트로 만듬
* 연산자 : 곱하는 수 만큼 반복하여 하나의 리스트로 만듬

- 리스트 내용 수정 (index 사용)

- 리스트 함수
- len : 리스트 길이를 반환
- sum, min, max 함수 : 리스트 요소의 총합, 최소값, 최댓값
- in : 특정 요소가 리스트에 있는지 확인하는 함수
- append : 맨 마지막에 요소 추가
- extend : 맨 마지막에 다른 리스트를 추가
- insert : 특정 위치에 요소를 삽입한다.
- remove, pop : 리스트의 요소를 삭제
- join : 리스트의 요소들을 하나의 문자열로 합침.
- split : 문자열을 리스트의 요소들로 나눈다.


※ in은 true, false 값으로 return
※ find는 index값으로 return

※append는 요소 추가
※extend는 리스트 추가
※insert는 특정 위치에 추가
※ split, join은 리스트[] 형태에서는 불가능! 문자열' ' 형태에서만 가능!

※ remove : 값을 입력받아 리스트에 값이 존재할 경우 값을 삭제한다
※ pop : index를 입력받아 리스트에서 해당 index에 존재하는 값을 삭제한다
- index를 입력하지 않는 경우 리스트의 마지막 요소가 삭제된다 →stack에서 유용하게 사용가능
※ clear : 리스트의 모든 요소를 삭제한다
※ del : 리스트의 인덱스를 입력받아 리스트의 값을 삭제한다 , 단 del a[ ] 이런 형태로 표현
[튜플]
- 리스트와 같다.
- 수정 불가능 (불변성)
- 리스트보다 빠르다.
- 반복문 돌릴 때 빠르게 하기 위해 튜플을 많이 씀
- [] x () o
- append, insert, extend, remove, pop, sort 는 사용 할 수 없다.
a = (1, 2, 3, 4)
print(a, type(a))


[딕셔너리]
- Key(키) : Value(값) 쌍이 모여있는 형태 => 프로퍼티 형식
- Key : Value 들을 { }로 감싼다.
- 변수명 = {'Key': Value, ... 'Keyn': Valuen}
- Key는 중복될 수 없다. 리스트를 키로 사용 할 수 없다.
- 위치로 인덱싱이 되지 않는다.
- 리스트랑 비슷한 형태 근데 왜 쓸까?
- 리스트는 인덱스를 써서 정보를 불러와야 하는데 인덱스는 외워서 써야하기 때문에 사용하기 불편함
- 딕셔너리는 데이터에 이름을 정해 불러내기 편 (데이터를 좀 더 명시적으로 표현하기 위하여)
dic = {
'name' : ['Merry', 'John'],
'num' : [ 1, 2, 3, 4 ],
'birth' : ['jan', 'feb', 'nov']
}
dic

- 키를 리스트 형식으로 쓸 경우 (error)
#키 쓸 때는 리스트 형식으로 쓰지 말 것
{['name', 'age'] : ['merry', 30]}

- 키를 이용해 값들을 불러오기
print(dic)
print(dic['name'])
print(dic['name'][1])

- 새로운 쌍 생성
dic['country'] = 'korea'
dic['age'] = [20, 30, 40, 50]
dic

- 내용 수정
dic['age'][3] = 55
dic

※ 키 잘못 쓴 경우(오타) -> 새로운 키 벨류 생김, 따라서 키 쓸때 항상 조심!!
- 키벨류 삭제
del(dic['age'])
- 딕셔너리 함수
- keys() : 키들을 반환
- values() : 값들을 반환
- items() : 키와 값을 튜플로 반환
- get('원하는키') : 키값에 대응하는 값을 반환
- zip : 튜플/리스트 두개를 하나의 딕셔너리로 변환 (dict와 함께 사용)

- 딕셔너리 type

- 파이썬 반복문
for k, v in dic.items():
print('key' , k)
print('value', v)

- zip으로 하나로 합치기
- 조건 : 키, 벨류 길이가 같아야함 (len)
- zip만 하면 코드 형태로 출력되니까 dict를 해줘야함
keys = ('a', 'b')
values = (1, 2)
#zip
print(zip(keys, values))
#dict
result = dict(zip(keys, values))
print(result)

<파이썬 코드 공부할 때 시각화로 볼 수 있는 사이트>
파이썬 튜터 : https://pythontutor.com/
Online Python Tutor - visualize, debug, get AI help for Python, Java, C, C++, and JavaScript
Online Compiler, Visual Debugger, and AI Tutor for Python, Java, C, C++, and JavaScript Python Tutor helps you do programming homework assignments in Python, Java, C, C++, and JavaScript. It contains a unique step-by-step visual debugger and AI tutor to he
pythontutor.com
'Back-End > Python' 카테고리의 다른 글
[Python][파이썬] 제어문 - 조건문(if), 반복문(for, while) (0) | 2023.11.06 |
---|---|
[Python]파이썬 - 불리언, 집합, 제어문 (5) | 2023.11.03 |
[Python]파이썬 변수 - 숫자, 문자열, 리스트, 튜플(1) (3) | 2023.11.03 |
[Python] Markdown 문법 (2) | 2023.11.02 |
[Python]파이썬 1일 차 공부 (2) | 2023.11.02 |