데이터 분석

금융데이터 분석을 위한 파이썬 프로그래밍(2)

남참새 2022. 6. 10. 15:25
728x90
반응형

데이터 타입 : 튜플에 대해 알아보기

1. 튜플은 기본적으로 리스트 형태와 비슷하나 대괄호 []가 아닌 소괄호 ()로 표현

2. 튜플의 다양한 형태

tuple = ('사과', '바나나', '배')
print(tuple)
print(type(tuple))

출력 : ('사과', '바나나', '배')

           tuple

tp=('사과')
print(type(tp))

출력 : str

tp1=('사과',)
print(type(tp1))

출력 : tuple

즉 튜플타입이 나오기 위해서는 쉼표(,)가 있어야 함

 

추가적으로

a=3, 4, 5

print(type(a))

출력 : tuple

 

tp_1 = ((1, 2), 3, 4, (5, 6, 7))
print(tp_1[0])
print(tp_1[3][1])

출력 : (1, 2)

           6

 

my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
print(my_list[0:2])
print(my_tuple[0:2])

출력 : [1, 2]

          (1, 2)

my_list[0] = '안녕하세요'
print(my_list)

출력 : ['안녕하세요', 2, 3, 4, 5]

 

my_tuple[0] = '안녕하세요'
print(my_list)

출력 : 오류 발생

즉, 튜플에서는 변수 변경 불가함(요소에 대해서 변경 불가!!), 리스트와 다른점이니 꼭 유념할 것!

 

3. 튜플의 메소드에 대해 알아보기(리스트에 비해 메소드가 거의 없음)

숫자 = (1, 2, 2, 2, 3, 4, 5, 1)
숫자.count(1)
print(숫자.count(1)), 출력 : 2 (튜플 내 1 요소가 들어가 있는 개수)
print(숫자.index(2)), 출력 : 1 (튜플 내 요소 2가 몇번째에 나오는지?, 중복된 요소 중 가장 먼저 나오는 위치에 대한 값)

 

- 리스트 형태 [1, 2, 3, 4, 5], 대괄호

- 튜플 형태(1, 2, 3, 4, 5), 소괄호

- 셋 형태{1, 2, 3, 4, 5}, 중괄호

 

4. 셋(set)의 형태에 대해 알아보기

- 요소(element)간 중복을 허용하지 않고, 순서도 없는 형태

my_set = {1, 2, 3, 4, 5}
print(my_set)
print(type(my_set))

출력 : {1, 2, 3, 4, 5}

           set

 

# 셋(set)형태에서 중복된 요소를 넣었을 때 맨 앞의 요소만 출력됨
my_set={1, 1, 2, 3, 4, 1, 2}
print(my_set)

출력 : {1, 2, 3, 4}

print(my_set[0])

출력 : 오류발생(셋형태는 순서가 없기 때문에 안됨)

 

# 리스트 형태를 셋 형태로 변환할 수 있음. 다만, 셋 형태의 특성으로 중복된 값은 하나만 출력 됨

my_list = [1, 2, 3, 5, 1, 4, 3]
set(my_list)

출력 : {1, 2, 3, 4, 5}

 

- 셋(set)의 메소드에 대해 알아보기

1) set.add()

나의주식 = {'삼성전자', 'sk하이닉스', '이마트'}
나의주식.add('현대차')
print(나의주식)

출력 : {'삼성전자', '현대차', 'sk하이닉스', '이마트'}

2) set.difference()

나의주식1 = {'삼성전자', 'sk하이닉스', '이마트'}
나의주식2 = {'삼성전자', 'LG전자', '기아차'}

나의주식1.difference(나의주식2)

출력 : {'sk하이닉스', '이마트'}

#나의주식1에 있는 요소중에서 나의주식2와 겹치지 않는 요소들만을 추출한 것

3) set.discard(), 원하는 요소를 제거하고 싶을 때

나의주식3= {'삼성전자','기아차', '현대차'}
나의주식3.discard('삼성전자')
print(나의주식3)

출력 : {'기아차', '현대차'}

4) set.clear(), set에 있는 데이터를 비우고 싶을 때

나의주식4 = {'삼성전자', '테슬라'}
나의주식4.clear()
print(나의주식4)

출력 : set()

 

5. 딕셔너리 형태에 대해 알아보기

- 딕셔너리는 기본적으로 key, value 값으로 구성

- {문자열 : 숫자} {숫자 : 문자열} {튜플 : 숫/문} {리스트 : 숫/문}

- 딕셔너리에서 요소를 접근할 때 key를 기준으로 접근

 

과일상자 = {'사과': 1, '배': 2, '수박':3}
print(과일상자)
print(type(과일상자))

출력 : {'사과': 1, '배': 2, '수박':3}

          dict

과일상자['사과']

출력 : 1

이처럼 딕셔너리에서 요소를 추출할 땐, key값을 기반으로 value값을 추출한다

del 과일상자['사과']
print(과일상자)

출력 : {'배': 2, '수박': 3}

key값을 제거할 때 value값도 함께 제거된다는 사실을 인지하자

 

5-1)딕셔너리 내 key 값만 가지고오기

print(과일상자.keys())
kk=과일상자.keys()
print(type(kk))
list(kk)

출력 :

dict_keys(['배', '수박')]

dict_keys

['배', '수박']

 

5-2)딕셔너리 내 key 값만 가지고오기

과일상자.values()

출력 : dict_values([2, 3])

 

5-3)딕셔너리 내 key, value 모두 가지고 오기

과일상자.items()

출력 : dict_items([('배': 2, '수박': 3)])

 

5-4)요소를 새로 추가하기

과일상자.update({'파인애플': 4})

print(과일상자)

출력 : {'배': 2, '수박': 3, '파인애플': 4}

 

5-5)요소 제거하기

과일상자.pop('배')

print(과일상자)

출력 : {'수박': 3, '파인애플': 4}