▼ 이전 [파이썬 기초] 상식▼
목차
[파이썬 기초]
1.튜플 (생성, 인덱싱, 슬라이싱, 수정, 리스트로 변환, 언패킹)
2.딕셔너리(생성, 추가, 수정, 삭제, 변경)
3.이차원 데이터/딕셔너리 중첩
파이썬 튜플 (tuple)
튜플은 순서가 있고 수정이 불가능한 자료 구조이다.
자료구조 내의 데이터를 변경할 필요가 없거나 변하지 않는 값을 튜플로 묶어 메모리를 아낄 수 있다.
파이썬 자료구조
자료구조 | 예시 | 순서 유무 | 수정 가능 여부 |
리스트(list) | [1,2,3] | O | O |
튜플(tuple) | (1,2,3) | O | X |
딕셔너리(dict) | {“사과”:apple, “바나나”:banana} | X | O |
파이썬 리스트 VS 튜플
리스트 | 튜플 | |
기호 | [ ] | ( ) |
변경 | Mutable(수정가능) | Immutable(수정불가능) |
인덱싱 | 0 | 0 |
슬라이싱 | 0 | 0 |
추가/삽입.삭제 | 0 | x |
순서 | 0 | 0 |
파이썬 튜플 생성
( ) 사이에 데이터를 적고 쉼표로 구분한다.
과일 = ('사과', '메론', '딸기', '바나나')
print(과일)
print(type(과일))
('사과', '메론', '딸기', '바나나')
tuple
파이썬 튜플 인덱싱
튜플은 순서가 있기 때문에 [ ]를 사용하여 정수값으로 인덱싱 할 수 있다.
과일 = ('사과', '메론', '딸기', '바나나')
print(과일[1])
메론
파이썬 튜플 슬라이싱
[시작 인덱스 : 끝 인덱스]를 사용해서 슬라이싱 할 수 있다.
과일 = ('사과', '메론', '딸기', '바나나')
print(과일[0:2])
사과, 메론
파이썬 튜플 수정
Immutable(수정불가능)
튜플은 수정이 불가능하다.
과일 = ('사과', '메론', '딸기', '바나나')
과일[0] = "키위"
XXX TypeError XXX
리스트와 튜플의 형태 변환
리스트를 튜플로 형태 변환
과일1 = ['사과', '메론', '딸기', '바나나']
과일2 = tuple(과일1)
print(type(과일1))
print(type(과일2))
<class 'list'> # 과일1의 타입
<class 'tuple'> # 과일2의 타입
튜플을 리스트로 형태변환
과일1 = ('사과', '메론', '딸기', '바나나')
과일2 = list(과일1)
print(type(과일1))
print(type(과일2))
<class 'tuple'> # 과일1의 타입
<class 'list'> # 과일2의 타입
데이터언패킹(unpacking)
과일 = ('사과', 10 , 50000, (2024,02,05))
과일이름 = 과일[0]
수량 = 과일[1]
현재가 = 과일[2]
날짜 = 과일[3]
과일 = ('사과', 10 , 50000, (2024,02,05))
과일이름,수량,현재가,날짜 = 과일
!주의!
값이 하나인 튜플
하나의 정수값을 튜플에 저장하게 되면 튜플로 정의되는 것이 아닌 정수로 인식이된다.
값 = (1)
type(값)
int # 정수로 인식함
이럴경우 쉼표를 입력하여 튜플로 정의되게 할 수 있다.
값 = (1, ) # ,사용
type(값)
tuple
파이썬 딕셔너리
{ key:value }
- key와 value를 쌍으로 저장하는 자료구조
- key 를 통해서 value 값을 인덱싱한다.
- key 와 value 는(:) 콜론 을 사용해서 구분한다.
- 원소는 쉼표를 사용해서 구분한다.
# 딕셔너리 생성
과일 = {'사과':1000, '메론':5000, '딸기':10000, '바나나':3000} # 일자로 나란히 정렬
과일 = { # 보기 좋게 아래로 정렬
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
파이썬 딕셔너리 인덱싱
딕셔너리는 순서가 없으므로 정수로는 인덱싱할 수 없다.
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
print(과일[0]) # KeyError
딕셔너리는 key 를 통해 value 를 인덱싱한다.
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
print(과일['사과'])
1000
!주의!
딕셔너리는 없는 key 를 통해 인덱싱하면 에러가 발생한다.
get 함수를 사용하면 key 가 없는 경우 None 을 리턴 한다.
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
print(과일['블루베리']) #KeyError
파이썬 딕셔너리 수정
딕셔너리[ key ] = change_ value
딕셔너리는 수정이 가능하다.
# 딕셔너리 생성
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
# 딕셔너리 수정
과일['사과'] = 1500
파이썬 딕셔너리 추가
딕셔너리[ new_key ] = new_ value
# 딕셔너리 생성
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
# 딕셔너리 추가
과일['블루베리'] = 2000
#변경된 딕셔너리
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
'블루베리':2000
}
파이썬 딕셔너리 원소 삭제
del.딕셔너리[key]
key:value 쌍이 딕셔너리에서 삭제된다.
# 딕셔너리 생성
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
# 딕셔너리 삭제
del.과일['바나나']
#변경된 딕셔너리
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
}
파이썬 딕셔너리 Key만 얻기
딕셔너리.keys( )
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
과일.keys() #key만얻기
'사과','메론','딸기','바나나
파이썬 딕셔너리 Value만 얻기
딕셔너리. values ( )
과일 = {
'사과':1000,
'메론':5000,
'딸기':10000,
'바나나':3000
}
과일.values() #value만얻기
1000,5000,10000,3000
이차원 데이터
이차원 데이터란 쉽게 생각하면 상자속에 또 다른 상자가 들어있는 경우다.
아파트라고 생각해도 된다.
아파트 1층에는 101호와 102호가 있다.
2층에는 201호와 202호가, 3층에는 301호와 302호가 있다.
이를 파이썬 코드로 표현하면 아래와 같다.
apart = [
[101, 102]
[201, 202]
[301, 302]
]
이차원 리스트 인덱싱
Q. 2차원 리스트의 [0]번 구하기
A.
이차원 리스트의 인뎅싱의 결과는 일차원 리스트다.
인덱싱기호를 연속으로 붙여서 사용하면 이차원 리스트 안에있는 데이터를 구할수 있다.
이차원 리스트의 인덱싱 -> 1차원 리스트 -> 특정 원소
apart = [
[101, 102]
[201, 202]
[301, 302]
]
print(apart[0]) #list type
[101,102]
apart = [
[101, 102]
[201, 202]
[301, 302]
]
print(apart[0[0]])
101
딕셔너리 중첩
딕셔너리 안에 딕셔너리가 있는 경우다.
예시)
과일정보 = {
"이름":"바나나",
"원산지":"동남아시아",
"가격":3000,
"가게주소":{
"도":"경기도"
"시":"수원시"
"동":"연무동"
}
}
pirnt(과일정보["이름"])
pirnt(과일정보["주소"]["도"])
바나나
경기도
'파이썬' 카테고리의 다른 글
[파이썬 기초] 파이썬 반복문(for문 vs while문) (1) | 2024.02.13 |
---|---|
[파이썬 기초] 파이썬 Boolean 타입 / 조건문, 논리 연산자 (0) | 2024.02.09 |
[파이썬 기초] 파이썬 리스트에 대한 기초 공부 (0) | 2024.01.31 |
[파이썬 기초] 문자열 인덱싱과 슬라이싱 / 문자열 주요 함수 (1) | 2024.01.29 |
[파이썬 기초] 이것부터 알고가자, 데이터 타입과 타입의 변환 / 화면 출력 함수 print/ 변수(Variable)와 변수 이름 규칙 (0) | 2024.01.26 |