본문 바로가기
고려사이버대학교

[파이썬 5주차] 데이터 타입을 알아보자 (2)

by 꿈돌이. 2022. 3. 29.

파이썬 5주차는 지난번 데이터 타입을 이어서 알아보는 시간이다. 데이터 타입은 '숫자형, 문자열 자료형, 리스트(튜플), 딕셔너리, 집합, 불 자료형' 총 6종류가 있다고 설명한 바 있다. 4주차에서 숫자형, 문자열, 리스트 자료형을 알아보았고, 이번 시간에는 튜플, 딕셔너리, 집합, 불 자료형을 알아보자.

 

 

1. 튜플 자료형

  • 튜플과 리스트 자료형의 차이점

튜플 자료형은 리스트와 유사하다. 리스트는 '대괄호[ ]'로 둘러쌓여져 있고, 생성·삭제·수정이 가능하다. 반면 튜플은 '소괄호( )'로 둘러쌓여져 있고, 값을 변경하는 것이 불가능하다.

 

리스트 집합 튜플
[ ] 대괄호 사용 { } 중괄호 사용 ( ) 소괄호 사용
생성 / 삭제 / 수정 가능 생성 / 삭제 / 수정 가능 값 변경 불가능

 

  • 튜플 다루기

인덱싱 하기

t1 = (1, 2, 'a', 'b')
t1[0]
>> 1
t1[3]
>> 'b'

 

슬라이싱 하기

t1 = (1, 2, 'a', 'b')
t1[1:]  # 배열 [1]부터 끝까지
>> (2, 'a', 'b')

 

튜플보다 리스트 자료형을 더 많이 사용한다.

 

2. 딕셔너리 자료형

딕셔너리는 Key와 Value를 한쌍으로 갖는 자료형이다.

 

  • 딕셔너리의 선언
{Key1:Value1, Key2:Value2, Key3:Value3, … }

 

  • 딕셔너리 다루기

딕셔너리에서 Key를 사용해 Value 얻기

score = {'pey':40, 'juliet':99, 'tom':70}
score['pey']
>> 40
score['tom']
>> 70

 

  • Keys()

key값만 따로 모아서 dict_keys 객체 반환

a = {'name':'pey', 'phone':'01022223333', 'birth':'1115'}
a.keys()
>> dict_keys(['name', 'phone', 'birth'])

 

  • Values()

Key와 반대로 Value값만 모아서 dict_value 객체 반환

a = {'name':'pey', 'phone':'01022223333', 'birth':'1115'}
a.values()
>> dict_values(['pey', '01022223333', '1115'])

 

3. 집합 자료형

집합 자료형은 Set 키워드를 사용하여 생성한다( { } 중괄호 사용). 특징으로 중복을 허용하지 않고, 리스트나 튜플과 다르게 순서가 없다.

 

s1 = set('apple')
s1
>> {'a', 'e', 'l', 'p'}

 

4. 불 자료형

불 자료형은 데이터가 있으면 True를 반환, 값이 없으면 False를 반환한다.

 

print(bool("python"))
print(bool(""))
>> True
>> False

 

 

실습 예제

  • 텍스트 데이터 전처리

다양한 데이터 소스로부터 주소를 받아 표현할 때, 몇 가지의 경우로 서울을 표현하는지 알아보자.

addr1_str = "서울시 서울특별시 seoul"
addr2_str = "서울 Seoul 서울-특별시"
addr3_str = "서울 서울-시"

 

문자열 합치기

addr_str = addr1_str + " " + addr2_str + " " + addr3_str   #문자열 합치기
print(addr_str)

>> 서울시 서울특별시 seoul 서울 Seoul 서울-특별시 서울 서울-시

 

소문자로 변환하기

addr_str=addr_str.lower()   #합친 문자열 소문자로 변환
print(addr_str)

>> 서울시 서울특별시 seoul 서울 seoul 서울-특별시 서울 서울-시

 

리스트 자료형으로 문자열 나누고, 중복 없애기

addr_list = addr_str.split()   #문자열 나누기
print(addr_list)

len(addr_list)

addr_list = list(set(addr_list)  #리스트 자료형으로 중복 없애기
print(addr_list)

>> ['서울시', '서울특별시', 'seoul', '서울', 'seoul', '서울-특별시', '서울', '서울-시']
>> ['서울-특별시', 'seoul', '서울', '서울시', '서울-시', '서울특별시']

댓글