#예제 : 비어있는 리스트, 튜플, 딕셔너리 생성
gb_data1 = list() #빈리스트
gb_data2 = tuple() #빈튜플
gb_data3 = dict() #빈딕셔너리
print(f'gb_data1 type\t:\t{type(gb_data1)}')
print(f'gb_data2 type\t:\t{type(gb_data2)}')
print(f'gb_data3 type\t:\t{type(gb_data3)}')
#예제 : a, b, c, d, e를 저장하는 튜플을 만들고 첫번째와 마지막 튜플값을 출력
data = 'a','b','c','d','e'
data = tuple(data) #튜플로 형변환
print(data[0]) #첫번째 글자 출력
print(data[-1]) #마지막 글자 출력
#에제 : 스와핑 코드
var1, var2 = 1, 2
print(var1, var2)
var1, var2 = var2, var1
print(var1, var2)
#예제 : 튜플 데이터 중 두번째 데이터부터 마지막 데이터를 튜플 형태로 출력
tuple_data = ('fun-coding1', 'fun-coding2', 'fun-coding3', 'fun-coding4', 'fun-coding5')
new_tuple_data = []
for i in range(1, len(tuple_data)): #range()함수를 활용하여 시작값 ~ 종료값 설정
new_tuple_data.append(tuple_data[i]) #.append 함수로 추가
new_tuple_data = tuple(new_tuple_data) #튜플로 형변환
print(f'new_tuple_data 데이터\t:\t{new_tuple_data}')
print(f'new_tuple_data 타입\t:\t{type(new_tuple_data)}')
#예제 : 튜플 데이터를 리스트 데이터로 변환 후 fun-coding4 추가 후 다시 튜플로 변환
tuple_data_1=('fun-coding1', 'fun-coding2', 'fun-coding3')
list_tuple_data_1 = list(tuple_data_1) #튜플 리스트로 형변환
print(type(list_tuple_data_1)) #타입확인
list_tuple_data_1.append('fun-coding4') #리스트에 값 추가
tuple_data_1 = tuple(list_tuple_data_1) #리스트 튜플로 형변환
print(f'tuple_data_1 타입\t:\t{type(tuple_data_1)}')
print(f'tuple_data_1 데이터\t:\t{tuple_data_1}')
#예제 : 영어 사전 데이터를 딕셔너리 변수로 만들고 딕셔너리 변수 key와 value 값을 각각 지닌 리스트 변수를 생성 및 출력
new_dict = {'environment' : '환경', 'company' : '회사', 'government' : '정부, 정치', 'face' : '얼굴'}
k_data = list()
v_data = list()
for k, v in new_dict.items(): #.items()를 활용해 키/벨류를 k와 v에 넣음
k_data.append(k)
v_data.append(v)
print(f'키 리스트 {type(k_data)}\t{k_data}')
print(f'벨류 리스트 {type(v_data)}\t{v_data}')
#예제 : 영어 사전 데이터를 키:벨류 형태로 출력
new_dict_1 = {'environment' : '환경', 'company' : '회사', 'government' : '정부, 정치', 'face' : '얼굴'}
k_data_1 = list()
v_data_1 = list()
for k, v in new_dict.items(): #.items()를 활용해 키/벨류를 k와 v에 넣음
print(f'{k}\t:\t{v}')
#예제 : 영어 사전 데이터 중 X가 포함된 값만 출력
#방법1
new_dict_2 = {'environment' : ['환경','X'], 'company' : ['회사','O'], 'government' : ['정부, 정치', 'X'], 'face' : ['얼굴', 'X']}
for kk, vv in new_dict_2.items():
if 'X' in vv:
print(f'X가 포함된 키값\t:\t{kk}')
#방법2
for kk, vv in new_dict_2.items():
if 'X' == vv[1]: #vv에 담긴 벨류 값은 리스트형태로, 리스트 중 1번 인덱스에 해당하는 값을 의미
print(f'X가 포함된 키값\t:\t{kk}')
#예제 : dict_all, dict2, dict3 딕셔너리 변수가 있을때 dict2와 dict3 두 데이터를 dict_all 딕셔너리 변수에 추가 후 dict_all 변수 출력
dict_all = {'environment' : '환경', 'government' : '정부, 정치'}
dict2 = {'company' : '회사', 'face' : '얼굴'}
dict3 = {'aplle' : '사과'}
for kk1, vv1 in dict3.items(): #dict3 키 벨류 값 추출
dict2[kk1] = vv1 #dict2 딕셔너리에 추출한 키와 벨류를 활용해 추가
for kkk, vvv in dict2.items(): #위 과정과 같이 키 벨류 추출
dict_all[kkk] = vvv #추출된 키 벨류를 활용해 dict_all에 추가
print(dict_all)
#딕셔너리 변수중 홈페이지, 배우이름, 최근 출연한 영화 개수 출력
actor_info = {'actor_details': {'생년월일': '1971-03-01',
'성별': '남',
'직업': '배우',
'홈페이지': 'https://www.instagram.com/madongseok'},
'actor_name': '마동석',
'actor_rate': 59361,
'date': '2017-10',
'movie_list': ['범죄도시', '부라더', '부산행']}
for k, v in actor_info.items():
if str(type(v)) == "<class 'dict'>": #★★★★벨류 데이터 타입별 특정타입 조건에 따른 출력
for kk, vv in v.items():
if kk == '홈페이지':
print(f'홈페이지\t:\t{vv}')
elif k == 'actor_name':
print(f'배우명\t:\t{v}')
elif str(type(v)) == "<class 'list'>":
print(f'출연영화 개수\t:\t{len(v)}개')
#예제 : 중복 숫자를 제거한 새로운 집합을 만들고 출력
number_list = [5,1,2,2,3,3,4,5,6,5,7,8,9,10,10,10,12,23,12]
number_list = set(number_list) #중복제거를 위해 set(집합)으로 형변환
print(f'타입\t:\t{type(number_list)}\t데이터\t:\t{number_list}')
#예제 : 집합 추가, 업데이트, 제거
number_list2 = {1,2,3}
number_list2.add(4) #단일추가
print(number_list2)
number_list2.update([5,6]) #복수추가 업데이트
print(number_list2)
number_list2.remove(2) #삭제
print(number_list2)
#예제 : number_1, number_2
number_1 = {1,2,3,4,8,9,10}
number_2 = {1,3,5,7,9}
print(f'합집합\t:\t{number_1|number_2}') #합집합
print(f'교집합\t:\t{number_1&number_2}') #교집합
print(f'차집합\t:\t{number_1-number_2}') #차집합