2023. 6. 30. 09:50ㆍAWS 기반 데이터분석 처리 고급 SW 클라우드 개발자 양성과정
리스트: 순서가 있는 여러 데이터를 묶어서 관리할 수 있는 자료
[list, list]
ex)
list = ['김길동', '홍길동' '소길동', 윤길동', 전길동']
print(list)
결과: ['김길동', '홍길동', '전길동']
-대괄호를 사용하여 인덱싱과 슬라이싱이 가능
print(list[2]
결과: ['전길동']
print(list[-1]
결과: ['전길동']
슬라이싱: 전체데이터에서 일부분만 가져오는 과정
print(list[0:2])
결과: ['김길동', '홍길동']
내장함수 len()은 요소의 개수를 구해주는 함수이며, 홀수 및 짝수만 구하려면 step(간격을)2로 정하면 됨.
length = len(somelist)
print(length) # 5
print(list[1:length:2]) #첫번째부터 간격은 2칸씩, 홀수번째만 출력
# ['홍길동', '윤길동']
print(list[0:length:2])
짝수번째만 출력 # 0번째부터 간격은 2칸씩, 짝수번째만 출력
# ['김길동', '소길동', '전길동']
튜플: 리스트처럼 순서가 있는 여러 데이터를 묶어서 관리하는 자료형, 튜플과 리스트의 차이점은 프로그램이 실행되는 동안 튜플은 어떠한 값이 항상 변하지 않고 일정하길 원한다면 튜플은 사용해야함.
(tuple): 값이 변하지 않음 [list]
tuple01 = (10, 20, 30)
tuple01 = tuple01 + (40,)
print(tuple01) # (10, 20, 30, 40)
print(type(tuple01) # <class 'tuple'>
# 튜플의 또다른 생성방법
1) tuple02 = 10, 20, 30, 40 #처음에는 소괄호로 묶었는데 이번에는 그냥 콤마로 묶어도 상관없음
2) mylist = [10, 20, 30, 40] # 리스트로 만들었다가
print(type(mylist)) # <class 'list'>
tuple03 = tuple(mylist) # tuple(mylist)로 묶으면 리스트형태에서 튜플로 변경이 됨
#딕셔너리 = {key:value}
keys() 함수는 키 목록을 보여주는 항목
dict = {'김유신":50, '윤봉길':40, '김구':60'}
print('사전내역 : ', dict) # 사전내역 : {'김유신":50, '윤봉길':40, '김구':60'}
for key in dict.key():
print(key)
#김유신
#윤봉길
#김구
for value in dict.values():
print(value)
#50
#40
#60
# dict.items(): 를 사용하면 key와 value값을 한 번에 불러올 수 있음
for key, value in dict.items():
print('{}의 나이는 {}입니다.format(key, value))
#김유신의 나이는 50입니다.
#윤봉길의 나이는 40입니다.
#김구의 나이는 60입니다.
findKey = '바보'
if findKey in dict:
print(findKey + '(은)는 존재')
else:
print(findKey + '(은)는 존재하지 않음')
result = dict.pop('윤봉길') #윤봉길 값만 찾아서 빼내옴
print(result) #40(윤봉길의 나이)
print(dict) #{'김유신': 50, '김구' : 60} #윤봉길 데이터만 빠졌음 b/c pop을 했기 때문이다.
mystring = 'life goes on and on'
mylist = mystring.split() #.split()하면 공백(Space)를 기준으로 문자열을 나누어 리스트에 저장됨.
print(mylist)
#['life', 'goes', 'on', 'and', 'on']
print(len(mylist)) #5
for idx in range(len(mylist)):
print(idx)
#0
#1
#2
#3
#4
#join()을 이용해 list에 있는 단어들 구분해주기
result = '#'.join(mylist)
print(result)
life#goes#on#and#on
###List Comprehension ### 매우중요
리스트컴프리헨션: 반복(iterable)할 수 있는 오브젝트(list, tuple)을 생성하기 위한 유용한 기법
mylist1 = list(onedata for onedata in range(1,6))
print(mylist1) #[1, 2, 3, 4, 5]
mylist02 = list(10 * onedata for onedata in range(1,6))
print(mylist02) #[10, 20, 30, 40, 50]
#리스트 요소 중 짝수인 항목들만 추출하여 각각의 제곱의 값들을 이용해 새로운 리스트를 만들어 줌
mylist03 = [3, 4, 6, 2]
result = [idx ** 2 for idx in mylist03 if idx % 2 ==0] #짝수인 리스트 값 제곱해서 새로운 리스트에 생성
print(result) #[16, 36, 4]
result = [idx ** 2 for idx in mylist03 if idx % 2 !=0] # 홀수인 리스트 값 제곱해서 새로운 리스트 생성
print(result) #[9]
wordInfo = {'냉장고':50, '선풍기':60, '청소기':10, '세탁기':20}
print(type(wordInfo)) # <class 'dict'>
myxticks = sorted(wordInfo, key=wordInfo.get, reverse=True) #판매 대수가 큰 순으로 키가 정렬됨
print(myxticks) # [선풍기', '냉장고', '세탁기', '청소기']
reverse_key = sorted(wordInfo.keys(),reverse=True) #키 값 역순 정렬
print(reverse_key) #['청소기', '세탁기', '선풍기', '냉장고']
chartdata = sorted(wordInfo.values(), reverse=True) #판매대수가 큰 순으로 값이 정렬됨
print(chartdata) # [60, 50, 20, 10]