파이썬에 입문하고 코딩 테스트, 알고리즘 문제를 접하게 됐는데, 리스트(list), 튜플(tuple), 딕셔너리(dictionary) 등
각각 어떻게 CRUD(생성, 읽기, 수정, 삭제) 해야 하는지 헷갈려서 글로 남기게 되었다.
* 추천 링크 - 인덱싱에 대한 자세한 내용 (kjh0816.tistory.com/23)
ps : 인덱스를 역순으로 가져올 때 주의점.
(본론)
* Sequence 자료형
1) Python에서 sequence 자료형이란?
- 순서를 가진 객체들의 집합.
2) Python에서 sequence 자료형에 속하는 것
- 문자열 ( String )
- 리스트 ( list )
- 튜플 ( tuple )
3) 가능한 연산
1) 인덱싱 ( Indexing )
- 순서가 존재하므로, index를 통해 index[0]부터 값을 불러올 수 있다.
※ 참고로, dictionary는 sequence가 아닌 { key : value, ...} 형태로 저장
되므로 index를 통해 값을 불러올 수 없다.
str1 = '가, 나'
print(str1[0], str1[1], str1[2], str1[3])
>>>
가, 나
# 공백(띄어쓰기)을 포함한 모든 문자는 하나의 index를 갖는다.
2) 슬라이싱 ( Slicing )
- 일부를 잘라내거나, 일부를 삭제할 수 있다.
university = ['고', '려', '대']
creature = ['생', '물']
# 1) 일부 잘라내기
ancient = university[0:1] + university[2:3]
print(ancient + creature)
>>>
['고', '대', '생', '물']
# 2) 일부 삭제하기
del university[1:2]
print(university+creature)
>>>
['고', '대', '생', '물']
3) "+"연산자로 연결 ( Concatenation )
- 같은 자료형끼리 "+" 연산자를 통해 합칠 수 있다.
str1 = 'Good'
str2 = 'Morning'
print(str1 + str2)
>>>
GoodMorning
# 아래처럼, tuple(또는 string) + list 등 같은 sequence 자료형이라도 합칠 수 없다.
list1 = [1, 2]
tuple1 = (3, 4)
print(list1+tuple1)
>>>
TypeError: can only concatenate list (not "tuple") to list
4) "*" 연산자로 반복 ( Repetition )
- 하나의 sequence 자료형 객체를 "*"를 통해 반복시킬 수 있다.
str1 = '간다'
print(str1*3)
>>>
간다간다간다
5) "in" 연산자로 값(value) 조회
- 특정한 값이 있는지 "in" 연산자를 통해 True/False 값을 얻을 수 있다.
computer = ['screen', 'keyboard']
print('screen' in computer)
>>>
True
print('cellphone' in computer)
>>>
False
# "in" 연산자와 조건문 사용
if 'mouse' not in computer :
computer.append('mouse')
print(computer)
>>>
['screen', 'keyboard', 'mouse']