[파이썬-3] 자료형 타입 확인, 리스트, 튜플, 딕셔너리
1. 자료형 타입 확인
>>> type(123)
<class 'int'>
>>> jb = 123
>>> type(jb)
<class 'int'>
>>> jb = 123
>>> print(type(jb))
<class 'int'>
>>> type( 123 )
<class 'int'>
>>> type( 123.123 )
<class 'float'>
>>> type( 'abc' )
<class 'str'>
>>> type( [ 1, 2, 3 ] )
<class 'list'>
>>> type( ( 1, 2, 3 ) )
<class 'tuple'>
>>> type( 1+2j )
<class 'complex'>
>>> type( True )
<class 'bool'>
2. 리스트(배열), 튜플, 딕셔너리
리스트(배열) | 튜플 | 딕셔너리 | |
선언방법 예시 | 대괄호 사용 [1,2,3] |
소괄호 사용 (1,2,3) |
중괄호 사용 {1 : 'a', 2 : 'b', 3 : 'c'} |
설명 | 배열처럼 사용 (추가,삭제,변경,연산 가능) |
값 변경 불가능 (추가,삭제,변경,연산 불가능) |
1,2,3에 해당하는 값 불러옴 |
1) 리스트(배열) 예시
1. 빈 리스트 정의
>>> a = []
>>> a
[]
>>> a = list()
>>> a
[]
2. 리스트 정의
>>> b = [1,3,5,7]
>>> b
[1, 3, 5, 7]
>>> c = ['Hello', 'World']
>>> c
['Hello', 'World']
>>> d = [1, 2, 'Hello', 'World']
>>> d
[1, 2, 'Hello', 'World']
3. 리스트 값 활용
>>> a = [1,3,5]
>>> a
[1, 3, 5]
>>> a[0] # a[0]는 문자열에서 사용했던 것처럼 첫 번째 값을 가져옵니다.
1
>>> a[0] + a[2] # a[0]의 값(1)과 a[2]의 값(5)을 가져와서 합을 구합니다.
6
>>> a[-1] # a의 마지막 값을 가져 옵니다.
5
4. 이중 리스트(이중 배열)
>>> a = [1,3,['a','b']]
>>> a[0]
1
>>> a[1]
3
>>> a[2]
['a', 'b']
>>> a[3] # a 3행 값이 없으므로 에러 띄움
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
a[3]
IndexError: list index out of range
>>> a[-1]
['a', 'b']
>>> a[2][0]
'a'
>>> a[2][1]
'b'
>>> a[-1][0]
'a'
>>> a[-1][1]
'b’
5. 리스트 인덱싱
>>> a = [1,3,5]
>>> a[0:2]
[1, 3]
>>> a = "135"
>>> a[0:2]
'13'
>>> a = [1, 3, 5]
>>> b = [2, 6, 8]
>>> c = a + b
>>> c
[1, 3, 5, 2, 6, 8]
6. 리스트 행 추가 (append, insert)
>>> a = [1, 5, 7]
>>> a.append(2)
>>> a
[1, 5, 7, 2]
>>> a = [1,2,3,4,5]
>>> a
[1, 2, 3, 4, 5]
>>> a.insert(2,7)
>>> a
[1, 2, 7, 3, 4, 5]
7. 리스트 행 삭제 (del, remove)
>>> a = [1, 3, 7]
>>> a[1:2] = []
>>> a
[1, 7]
>>> a = [1,3,5,7,9]
>>> a
[1, 3, 5, 7, 9]
>>> del a[3]
>>> a
[1, 3, 5, 9]
>>> a
[1, 2, 7, 3, 4, 5]
>>> a.remove(7)
>>> a
[1, 2, 3, 4, 5]
8. 리스트 행 정렬 (sort)
>>> a = [9, 2, 3, 1, 0]
>>> a
[9, 2, 3, 1, 0]
>>> a.sort()
>>> a
[0, 1, 2, 3, 9]
>>> a = ['i','h']
>>> a
['i', 'h']
>>> a.sort()
>>> a
['h', 'i']
9. 리스트 행 리버스 (reverse)
>>> a = [1, 3, 7, 5]
>>> a
[1, 3, 7, 5]
>>> a.reverse()
>>> a
[5, 7, 3, 1]
10. 리스트 행 가리키기 (index)
>>> a
[5, 7, 3, 1]
>>> a.index(1) #1은 몇번행?
3
>>> a.index(7) #7은 몇번행?
1
>>> a.index(2) #2은 몇번행? 값없음
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
a.index(2)
ValueError: 2 is not in list
11. 리스트 행 값 개수 세기 (count)
>>> a = [1, 1, 2, 3, 4, 1]
>>> a
[1, 1, 2, 3, 4, 1]
>>> a.count(1)
3
※ 리스트 함수 정리
함수 | 설명 |
append(x) | x의 값을 마지막에 추가 |
sort() | 오름차순으로 정렬 |
reverse | 리스트의 값을 역순으로 변경 |
index(x) | x라는 값이 존재하면 위치 반환 |
insert(x,y) | 리스트 x위치에 y값 추가 |
remove(x) | 리스트 x값 삭제 |
count(x) | 리스트 x개수 반환 |
2) 튜플 예시
1. 튜플 빈셀 정의
>>> t1 = ()
2. 단 하나의 값만 갖는 튜플 정의
>>> t2 = (1,)
# 반드시 뒤에 콤마(,) 추가해야함
3. 튜플 정의
>>> t3 = (1, 2, 3)
>>> t4 = 1, 2, 3
# 소괄호 없어도 튜플로 인식함
4. 이중튜플 정의
>>> t5 = ('a', 'b', ('ab', 'cd'))
# 삼중튜플, 사중튜플도 가능
5. 튜플 인덱싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0] 1
>>> t1[3] 'b'
6. 튜플 슬라이싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[1:] (2, 'a', 'b')
7. 튜플 더하기
>>> t1 = (1, 2, 'a', 'b')
>>> t2 = (3, 4)
>>> t1 + t2
(1, 2, 'a', 'b', 3, 4)
8. 튜플 곱하기
>>> t2 = (3, 4)
>>> t2 * 3
(3, 4, 3, 4, 3, 4)
9. 튜플 길이 구하기 (len)
>>> t1 = (1, 2, 'a', 'b')
>>> len(t1)
4
추가) 튜플 행 값을 삭제,변경시도시 아래와 같이 에러 발생!
>>> t1 = (1, 2, 'a', 'b')
>>> del t1[0]
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object doesn't support item deletion
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0] = 'c'
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
3) 딕셔너리 예시
1. 딕셔너리 정의
>>> dic = {'book':10000, 'pen':1000, 'case':5000}
{'book': 10000, 'pen': 1000, 'case': 5000}
key는 (‘book’, ‘pen’, ‘case’)이고, value는 (‘10000’, ‘1000’, ‘5000’) 이다.
key (고유값) | value (변화값) |
book | 10000 |
pen | 1000 |
case | 5000 |
2. 빈 딕셔너리 정의 및 행 추가
>>> dic ={}
>>> dic[0] = 'book' # {0:‘book’} 추가
{0: 'book'}
>>> dic[1] = 'book1' # {1:‘book1’} 추가
{0: 'book', 1: 'book1'}
>>> dic[3] = 'book3' # {3:‘book3’} 추가
{0: 'book', 1: 'book1', 3: 'book3'}
>>> dic['book'] = 10000 # {4:‘book’} 추가
{0: 'book', 1: 'book1', 3: 'book3', 'book': 10000}
3. 딕셔너리 행 삭제
>>> dic
{0: 'book', 1: 'book1', 3: 'book3', 'book': 10000}
>>> del dic[0] # {4:‘book’} 추가
{1: 'book1', 3: 'book3', 'book': 10000}
4. 딕셔너리 빈 Key값 넣기
>>> dic[1] = {} # 1번 key에 빈 딕셔너리 넣기
{1: {}, 3: 'book3', 'book': 10000}
>>> dic[1] = [] # 1번 key에 빈 리스트(배열) 넣기
{1: [], 3: 'book3', 'book': 10000}
>>> dic[1] = () # 1번 key에 빈 튜플 넣기
{1: (), 3: 'book3', 'book': 10000}
>>> dic[1] ='' #1번 key에 공백 넣기
{1: '', 3: 'book3', 'book': 10000}
5. Key값 출력 (keys)
>>> dic
{'book': 10000, 'book1': 20000, 'book3': 30000}
>>> dic.keys()
dict_keys(['book', 'book1', 'book3'])
>>> dic_keys = list(dic.keys()) #리스트(배열)형태로 저장
dict_keys(['book', 'book1', 'book3'])
6. Value값 출력 (values, get)
>>> dic
{'book': 10000, 'book1': 20000, 'book3': 30000}
>>> dic['book']
10000
>>> dic.values()
dict_values([10000, 20000, 30000])
>>> dic_values = list(dic.values()) #리스트(배열)형태로 저장
dict_values([10000, 20000, 30000])
>>> dic.get('book')
10000
>>> dic.get('aaaa') #Key값에 해당하는 Value가 없을 경우 None 리턴
None
>>> dic.get('aaaa', 'nothing') #Key값에 해당하는 Value가 없을 경우 지정한 nothing 리턴
nothing
7. Key:Value 쌍으로 출력 (items)
>>> a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
8. Key값 존재 유무 확인 (in)
>>> dic
{'book': 10000, 'book1': 20000, 'book3': 30000}
>>> 'book1' in dic
True
>>> 'book4' in dic
False
9. 리스트, 튜플로 Value 정의
>>> dic2 = {1:['a','b','c']}
>>> dic2
{1: ['a', 'b', 'c']}
>>> dic3 = {1:(1,2,3)}
>>> dic3
{1: (1, 2, 3)}
딕셔너리 만들 때 주의할 사항
① 동일한 Key가 2개 존재할 경우 1:'a' 쌍이 무시된다.
>>> a = {1:'a', 1:'b'}
② 고유값인 key는 리스트로 정의가 불가하나, 변경불가한 튜플로는 정의가 가능하다.
리스트를 key로 사용 | 튜플을 key로 사용 |
>>> dic1 = {[1,2] : 'a'} Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> dic1 = {[1,2] : 'a'} TypeError: unhashable type: 'list' |
>>> dic2 = {(1,2), 'a'} >>> dic2 {(1, 2), 'a'} |
따라서 딕셔너리의 Key 값으로 딕셔너리를 사용할 수 없음은 당연하다. 단 Value에는 변하는 값이든 변하지 않는 값이든 상관없이 아무 값이나 넣을 수 있다.
요일 리턴하는 예시)
※ 딕셔너리 함수 정리
함수 | 설명 |
keys() | 딕셔너리 안에 있는 key값을 모두 표시 |
values() | 딕셔너리 안에 있는 value값을 모두 표시 |
in | 딕셔너리 안에 key가 존재하는지 판단 |
items() | Key, Value 쌍으로 반환 |
clear() | Key, Value 모두 지우기 |
get() | key로 Value값 얻기 |
'IT > 파이썬 & vscode' 카테고리의 다른 글
[vscode] 오프라인에서 Extension 설치 방법 (0) | 2022.03.15 |
---|---|
[vscode] 폴더째로 비교하기 (Diff Tool) (0) | 2022.03.15 |
[vscode] 한글 깨짐 현상 해결 방법 (1) | 2022.03.15 |
[파이썬-2] 문자열 처리하기 (0) | 2022.03.02 |
[파이썬-1] 개발 전 필수로 설치해야 할 항목들 (0) | 2022.03.02 |