csmoon1010의 SW 블로그

[200711] Python 간단정리 _ 자료구조 본문

데이터&인공지능/데이터분석(Python)

[200711] Python 간단정리 _ 자료구조

csmoon1010 2020. 7. 11. 21:16

1. 리스트

1) 리스트 생성

- 자료형이 동일할 필요가 없음

- 리스트 내에 리스트 추가 가능(모두 형식이 같다면 n차원 리스트)

#선언시 초기화
buylist = ['milk', 'apple', 'noodle']

#빈 리스트 생성 후 추가
contact = []
contact.append('Kim')

#중첩 리스트
primes = [2, 3, 5, 7, 11, ['sun', 'mon', 'tue']]

2) 리스트의 인덱스

primes[0] #2
primes[5] #['sun', 'mon', 'tue']
primes[5][1] #'mon'

3) 리스트의 항목 추가

: append, extend, insert

word = []

#append : 오른쪽 끝에 삽입. 한번에 하나씩
word.append('I')

#extend : 오른쪽 끝에 삽입. 여러개의 항목 추가
word.extend(['love', 'programming'])

#insert : 원하는 위치에 새로운 항목 추가
word.insert(2, 'python')

4) 리스트의 항목 삭제

: remove, del, pop

#remove : 항목의 이름으로 삭제
word.remove('python')

#del : 항목 인덱스로 삭제
del word[2]

#pop : 가장 나중에 추가된 항목 반환 후 삭제
token = word.pop()

5) 리스트 멤버십

: 특정 항목이 존재하는 여부

in, not in 이용

week = ['sun', 'mon', 'tue']
'sun' in week #True
'sun' not in week #False

6) 리스트 자르기(slicing)

: 인덱스를 이용해 여러 개의 부분 리스트로 분리

months = ['jan', 'feb', 'mar', 'apr', 'may']

#list[start:end]
months[1:2] #['feb']

#list[:end]
months[:2] #['jan', 'feb']

#list[start:]
months[2:] #['mar', 'apr', 'may']

#음수가 있는 경우 - 맨 뒤 인덱스를 -1로 하고 1씩 감소됨
months[-4:-1] #['feb', 'mar', 'apr']

#list[start:end:step] - step에 따라 역순으로 출력이 가능
months[-1:-4:-1] #['may', 'apr', 'mar']

7) index 출력

word.index('t') #'t'의 index 번호 출력

8) 리스트 정렬

: sort(), reverse() 이용

#오름차순 정렬
word.sort()

#내림차순 정렬
word.sort(reverse = True)
word.reverse()

9) 리스트 복사

: Call by reference 방식. 하나의 리스트를 공유하는 것

 

10) 스택(stack)

: 나중에 들어간 항목이 가장 먼저 나오도록 만든 FIFO 자료구조

- 원소 삽입 : stack.append(4)

- 원소 반환 : stack.pop()

 

2. 튜플(tuple)

1) 튜플의 선언 : 소괄호를 이용

odds = (1, 3, 5, 7, 9)

2) 특징

항목의 변경, 추가, 삭제가 불가능

 

3. 사전(dictionary)

1) 사전의 선언

: 키(key)와 값(value) 쌍으로 구성된 리스트. 키를 통해 항목의 값에 접근할 수 있음

#D = {'key1' : 'value1', 'key2' : 'value2'}
ds_scores = {'kim' : 50, 'lee' : 70}

2) 사전 항목 추가

ds_scores['park'] = 90 #'park' : 90이 오른쪽 끝에 추가됨!!

3) 사전 항목 삭제

del ds_socres['park'] #'park'키를 가진 항목을 삭제

4) 사전 리스트의 함수

: items(), keys(), values()

#items : 사전 항목을 (key, value) 쌍의 튜플 리스트로 반환
ds_scores.items() # [('kim', 50), ('lee', 70), ('park',90)]

#keys : key만 추출하여 리스트로 반환
ds_scores.keys() # ['kim', 'lee', 'park', 'hwang']

#values : value만 추출하여 리스트로 반환
ds_scores.values() # [50, 70, 90]

5) 사전 항목의 조회

: for문과 items, keys, values 함수 이용

for person, score in ds_scores.items():
    print(person, '=', score)

 

Comments