1. 기본 데이터 구조 (리스트, 딕셔너리, 자료형)
1) 리스트 (+ 람다 (+filter, sorted, map))
<함수>
생성 : a = list(range(1,10,2))
리스트.append(요소) : 리스트의 끝에 요소 추가
리스트.insert(인덱스, 요소) : 특정 인덱스에 요소 삽입
리스트1.extend(리스트2) : 리스트1에 리스트2를 연결 확장
리스트1 + 리스트2 : 리스트1과 리스트2를 서로 병합
리스트.sort() : 오름차순 정렬
.sort(reverse=True) : 내림차순 정렬
리스트.pop(인덱스) : 리스트 중 특정 인덱스의 요소를 삭제 (해당 요소 반환)
del 리스트[인덱스] : 해당 인덱스 요소 하나 지우기
리스트[n:] = [] : 슬라이싱 된 부분을 빈 리스트로 만들겠다 = 지우기
리스트.remove(요소) : 특정 요소를 삭제
리스트.count('요소') : 특정 값을 가진 요소의 개수 카운트
----------------------------------------------------------------------------
<람다함수>
* 잠시 쓰고 버리는 이름이 없는 '1회용 함수'
예시 : 'sorted' / 'map' / 'filter' 등과 함께 사용하는 법을 익혀보자
# 딕셔너리를 정렬하여 모델 이름과 예측값을 리스트에 저장
y_value = sorted(my_predictions.items(), key=lambda x: x[1], reverse=True)
--> my_predictions 딕셔너리의 튜플형태를 정렬하는데, key값을 기준으로 내림차순으로 정렬
# 매핑해보자
list(map(lambda x: x['point'] * 2 , members))
--> members라는 딕셔너리들의 리스트 구조에서 'point'키에 해당하는 value값에 2배를 해주는 매핑
# filter로 member를 필터링해서 리스트에 넣어보자
list(filter(lambda x: x['point'] > 70, members))
--> member 에서 point가 70초과인 아이들만 filter로 걸러서 리스트에 넣음
2) 딕셔너리
<함수>
.keys() : 딕셔너리에 key만 모아서 반환
.values() : 딕셔너리에 value만 모아서 반환
.items() : key, value쌍을 튜플로 묶은 값을 반환
.clear() : key,vallue 모두 지우기
.get('key') : key로 value 얻기
'key' in 딕셔너리 : 해당 key가 딕셔너리 안에 있는지? True/False
3) 자료형(문자열, 다른 자료형으로 변환)
<문자열>
문자.split(' ') : ' ' 기준으로 문자 분리해서 리스트로
' '.join(['문자1', '문자2', ...]) : ' '로 리스트에 있는 문자들을 연결
문자.strip() : 양 끝 공백 제거
문자.lower() : 소문자
문자.upper() : 대문자
문자.capitalize() : 첫음절들만 대문자로
문자.find('찾을 문자') : 찾을 문자가 몇번 인덱스에 있는지
문자.replace('찾을 문자', '대체해서 넣을 문자') : 문자를 찾아서 대체문자로 교체
----------------------------------------------------------------------------
<자료형 변환>
df = df.astype({'기준 열' : float})
df['기준 열'] = df['기준 열'].astype(int)
----------------------------------------------------------------------------
<응용>
*가사에서 특수문자들만 제거하고 단어개수를 세본다.
lyrics = lyrics.lower()
chars = set(lyrics) - set('abcdefghijklmnopqrstuvwxyz')
# 알파벳을 제외한 나머지 문자들이 chars에 저장됐으므로 각 chars를 하나씩 lyrics에서 제거
for c in chars:
lyrics = lyrics.replace(c, '')
# 특수문자가 제거된 lyrics를 공백 기준으로 나눈 뒤 단어가 몇개인지 세본다.
words = lyrics.split(' ')
----------------------------------------------------------------------------
<응용>
*가장 많이 쓰이는 단어 10개 추출
# 형식 통일
trans = [{'word': k, 'count': v} for k, v in word_dict.items()]
# 정렬
trans = sorted(trans, key lambda x: x['count'], reverse = True)
#10개 추출
trans[:10]