학습내용
1. 리스트와 튜플
2. 리스트 만들기, 데이터 쓰기, 읽기, 변경, 삭제
학습목표
- 리스트와 튜플을 구분합니다.
- 리스트 데이터의 CRUD에 대해 알아봅니다.
사전퀴즈
1. 리스틑 순서가 있는 데이터 구조이다. ( X )
: 파이썬에서 리스트는 [] 기호를 사용하며 아이템으로 구성되어 있고, 각 아이템들은 자동으로 부여된 인덱스(오프셋)을 가진다.
2. 리스트의 아이템은 변경이 불가능하다. (X)
: 리스트와 스트링은 모두 순서가 있는 시퀀스 타입인데 리스트는 변경가능하고 스트링은 변경 불가능하다.
리스트
- 파이썬에서 리스트는 원하는 모든 데이터를 담는 컨테이너
: Read-Only 리스트 - 튜플(Tuples)
: 위 두가지 모두 시퀀스 구조의 컨테이너이다.
# an empty list
empty = []
# list of numbers
nums = [10, 20, 30]
# list of strings
words = [cheerio', 'cheers']
# list of mixed items
anything = [10, 'hello']
- 리스트의 아이템은 0부터 시작하는 인덱스(또는 오프셋)로 순서를 가진다.
: 오프셋으로 데이터를 추출 또는 변경이 가능
: insert(offset, data) 함수를 통해 데이터 변경도 가능
: append(data) 함수로 데이터를 마지막에 추가
- 오프셋으로 아이템 얻기
>>> address = ['seoul', 'seocho, 'woomyun']
>>> address[0]
'seoul'
>>> address[-2]
'seocho'
리스트는 CRUD 가능
- 오프셋으로 아이템 바꾸기
>>> phone_number = ['010', '1234', '4567']
>>> phone_number[1] = '2346'
>>> phone_number
['010','2346','4567]
- 아이템 삭제
: 리스트에서 아이템 삭제는 값과 인덱스 모두 가능하다.
slang = ['cheerio', 'pip pip', 'smashing', 'cheeky']
slang.remove('cheeky')
del slang[3]
print(slang)
sublist로 삭제도 가능
- 슬라이스로 아이템 추출
: 슬라이스로 리스트의 서브시퀀스를 추출할 있다.
>>> address = ['seoul', 'seocho', 'woomyun']
>> address[0:2]
['seou;', 'seocho']
- 리스트에 아이템 추가 : append()
>>> address.append('123-4')
['seoul', 'seocho', 'woomyun', '123-4']
- 오프셋과 insert()로 항목 추가
>>> address.insert(3, 'san')
>>> address
['seoul', 'seocho', 'woomyun', 'san', '123-4']
- 다른 데이터 타이을 리스트로 변환 : list()
>>> list('cat')
['c','a','t']
- 문자열을 구분자로 나누어서 리스트로 변환 : split()
>>> birthday = '1985/2/5'
>>> birthday.split('/')
['1985','2','5']
- 값으로 오프셋 찾기 : index()
>>> address = ['seoul', 'seocho', 'woomyun', '123-4']
>>> address.index('seocho')
1
- 멤버십 확인 : in
: 리스트의 멤버(아이템) 인지 확인하려면 in을 사용
>>> address = ['seoul', 'seocho', 'woomyun', '123-4']
튜플 <-> 리스트 가능
list(튜플) or tuple(리스트)
- 튜플(tuples)
: 튜플은 더 적은 공간을 사용한다. 리스트 보다 퍼포먼스가 좋다.
: 실수로 튜플의 항목이 손상될 염려가 없다.
: 함수의 파라미터들은 튜플로 전달된다.
연습문제
- 색상 이름을 아이템으로 가지는 리스트를 작성하세요(색상 최소 5개 이상)
1. 리스트의 아이템 개수를 출력하세요. len()
2. 리스트의 가장 마지막 아이템의 첫 번째 글자를 대문자로 변경해서 출력하세요. [-1]
colors = ['red', 'yellow', 'blue', 'green', 'orange']
how_many = len(colors)
print(how_many)
the_last = colors[-1]
print(the_last)
the_last = the_last.capitalize()
print(the_last)
Quiz
1. 파이썬 리스트 형태로 맞지 않는 것은?
④ my_dict = {'a', 'b', 'c', 'd'}
리스트를 나타낼 때는 []를 사용한다.
2. 다음 중 리스트를 설명하는 내용중 잘못된 것은?
④ 리스트와 튜플중에서 속도는 리스트가 더 빠르다.
튜플은 읽기전용인 대신에 속도가 리스트에 비해 빠르다.
3. 다음중 리스트 관련 함수에 대한 설명 중 잘못된 것은?
④ to_list() 함수를 사용하면 다른 데이터 타입을 리스트로 변환할 수 있다.
list() 함수로 다른 타입을 리스트로 변환한다. 비슷한 함수로 str(), int(), float() 등이 있다.
Summary
- 리스트와 튜플은 순서 있는 데이터를 저장하는 데이터 구조이다.
- 리스트 관련 함수를 이용해서 리스트를 조작할 수 있다.
- 튜플은 아이템 수정이 불가한 리스트이며, 속도가 빠르다.