숫자형 + 자료형을 탐구한 것에 이어서, '2장- 리스트, 튜플, 딕셔너리 자료형' 에 대해 탐구해보도록 하겠다 🧐
🔎 세 개의 자료형 간단 비교
1. 리스트
형태: [ ]
값: 변화 가능(생성, 삭제, 수정 가능)
2. 튜플
형태: ( )
값: 변화 불가능
3. 딕셔너리
형태: { }
값: key는 변화 불가능, value는 변화 가능
🔎 리스트
선언
a=[] //일반 리스트 생성
a=list() //비어있는 리스트 생성
인덱싱(요소 찾는 방법)
a=[ 1, 2, 3, [ 'a', 'b', 'c' ] ] 의 경우
//1을 찾을 때
a[0]
//[ 'a', 'b', 'c' ] 을 찾을 때
a[3]
//'a'를 찾을 때 (이중 리스트인 경우)
a[3][0]
연산
📌 a=[ 1, 2, 3 ] 와 b=[ 4, 5, 6 ] 가 있는 경우를 가정한다
1. 리스트에 변화가 없는 경우
//길이
len(a)
👉🏻 3
//요소 개수 세기
e=[1,2,3,4,4,4]
e.count(4) //(값)
👉🏻 3
//값의 위치 반환
a.index(1)
👉🏻 0
2. 리스트에 변화가 있는 경우
//더하기
a+b
👉🏻 [1,2,3,4,5,6]
//곱하기
a*3
👉🏻 [1,2,3,1,2,3,1,2,3]
//값 수정
a[2]=4
👉🏻 a=[1,2,4]
//값 삭제( del 함수 이용 ) -> 자리 이용
del a[0]
👉🏻 a=[2,3]
//값 삭제( remove 함수 이용 ) -> 값 이용
a.remove(1)
👉🏻 a=[2,3]
🚨 중복된 숫자가 있는 경우, 더 앞에 있는 값을 삭제
//값 삭제( pop 함수 이용)
a.pop()
👉🏻 3이 출력됨
👉🏻 a=[1,2]
🚨 맨 마지막 값을 return하고 그 값을 삭제
a.pop(2) //(자리)
👉🏻 3이 출력됨
👉🏻 a=[1,2]
🚨 해당 인덱스 위치에 있는 값을 return하고 그 값을 삭제
//값 추가(맨 뒤에)
a.append(4)
👉🏻 a=[1,2,3,4]
//값 추가(원하는 위치에)
a.insert(0,4) //(자리, 값)
👉🏻 a=[4,1,2,3]
//리스트 확장
a.extend([4,5]) //👉🏻 a=[1,2,3,4,5]
f=[6,7]
a.extend(f)
👉🏻 a=[1,2,3,4,5,6,7]
//정렬
c=[ 3, 2, 1 ]
c.sort()
👉🏻 c=[1,2,3]
//뒤집기
d=[ 'a', 'c', 'b' ]
d.reverse()
👉🏻 d=['b','c','a']
🚨 역순으로 정렬이 아닌, 앞뒤 자리 바꾸기임
🔎 튜플
선언
t1=() //빈 튜플
t2=(1,) //하나의 값만 있는 튜플, 하나만 있는 경우 ,(콤마) 필수
t3=1,2,3 //괄호() 생략 가능
인덱싱
t1=(1,2,3)
//1을 찾을 때
t1[0]
연산
t1=(1,2,3,'a','b')와 t2=(4,5)가 있다고 가정한다
//길이 구하기
len(t1)
👉🏻 5
//더하기
t1+t2
👉🏻 (1,2,3,'a','b',4,5)
//곱하기
t2*3
👉🏻 (4,5,4,5,4,5)
🔎 딕셔너리
특징
'key : value' 의 구조를 가진다
C++에서 해시(Hash)와 유사함
🚨 key 중복 불가능
🚨 key에 리스트 사용 불가능 (단, 튜플은 가능) -> 값 변함 여부와 상관있음
접근 방법
key를 통해 value를 얻어낸다
grade={ 'min': 10, 'jeong': 90 } 라고 가정하자
이때, 10이란 value를 얻고 싶다면?
1. grade['min']
👉🏻 10
🚨 없는 key라면? error 발생
2. grade.get('min')
👉🏻 10
🚨 없는 key라면? None return
🚨 없는 것 대비 > grade.get(x, 없는 경우 출력하는 값) 으로 적기
연산
a={1:'a' , 2:'b'}가 있다고 가정한다
//값 추가
a[3]='c'
👉🏻 a={1:'a', 2:'b', 3:'c'}
//값 삭제 (del 이용)
del a[1]
👉🏻 a={2:'b'}
🚨 key값을 통해 삭제가 되는 것
//값 삭제 (pop 이용)
a.pop(1)
👉🏻 a={2:'b'}
👉🏻 print(a.pop(1)) 은 'a'가 된다
//전체 삭제 (clear 이용)
a.clear()
👉🏻 a={}
//key 모음집
a.keys()
👉🏻 dict_keys([1,2,3])
//value 모음집
a.values()
👉🏻 dict_values(['a','b','c'])
//key & value 모음집
a.items()
👉🏻 dict_items([ (1,'a'), (2,'b'), (3,'c') ])
//key가 딕셔너리 안에 있는지 조사
'minjeong' in a
👉🏻 False
이상으로 자료형(리스트,튜플,딕셔너리)에 대해 알아보았다!
다음에는 2장 자료형의 마지막 부분인 집합, 불 자료형에 대해 탐구할 예정이다 👋👋
'프로그래밍 - 기본 > Python' 카테고리의 다른 글
[변수] 얕은 복사와 깊은 복사 (0) | 2021.07.20 |
---|---|
[점프 투 파이썬] 2장 - 집합 자료형 + 불 자료형 + 변수 (0) | 2021.07.20 |
[점프 투 파이썬] 2장 - 숫자형 + 문자열 자료형 (0) | 2021.07.12 |
[점프 투 파이썬] 1장 - 파이썬이란 무엇인가? 🤔 (0) | 2021.07.12 |