Untitled


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]