IT/파이썬 & vscode

[파이썬-3] 자료형 타입 확인, 리스트, 튜플, 딕셔너리

크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널 2022. 3. 2. 21:56
반응형

[파이썬-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에는 변하는 값이든 변하지 않는 값이든 상관없이 아무 값이나 넣을 수 있다.

반응형

 

 

요일 리턴하는 예시)

from datetime import datetime
now = datetime.now().date()
 
dateDict = {0: '월', 1: '화', 2: '수', 3: '목', 4: '금', 5: '토', 6: '일'}
print(f"오늘의 날짜 = {now} ({dateDict.get(now.weekday())})") #오늘 날짜 출력
 
출력결과 : 오늘의 날짜 = 2022-03-02 (수)

 

※ 딕셔너리 함수 정리 

함수 설명
keys() 딕셔너리 안에 있는 key값을 모두 표시
values() 딕셔너리 안에 있는 value값을 모두 표시
in 딕셔너리 안에 key가 존재하는지 판단
items() Key, Value 쌍으로 반환
clear() Key, Value 모두 지우기
get() key로 Value값 얻기
반응형

 

반응형