문자열과 시퀀스
문자열
이스케이프 문자
이스케이프 문자 | 설명 |
---|---|
\a | 비프음 발생 |
\t | 탭(tab) |
\n | 줄바꿈 |
\ | \입력 |
' | ’ 입력 |
" | ” 입력 |
인덱스 연산
>>> lux = '빛으로 강타해요!'
>>> lux[0]
'빛'
>>> lux[-1]
'!'
>>> lux[50]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
슬라이스 연산
[start:end:step]
형식 사용
[:]
: 처음부터 끝까지[start:]
: start부터 끝까지[:end]
: 처음부터 end까지[start:end]
: start부터 end까지[start:end:step]
: start부터 end까지, step만큼 뛰어넘은 부분
문자열 나누기 : split
split 함수에 인자로 주어진 구분자를 기준으로 리스트 형태로 반환시켜준다.
>>> fruits = "apple, banana, cherry, durian"
>>> fruits.split(',')
['apple', 'banana', 'cherry', 'durian']
split 함수에 인자를 주지 않을 때, 공백문자를 구분자로 사용한다.
문자열 결합 : join
split 함수와 반대 역할
각 문자열을 결합해줄 구분자 문자열을 지정한 후 join 함수 사용
>>> fruits = "apple, banana, cherry, durian"
>>> fruits_list = fruits.split(',')
>>> fruits_str = ', '.join(fruits_list)
>>> print(fruits_str)
apple, banana, cherry, durian
대소문자 다루기
>>> lux = 'lux, the Lady of Luminosity'
>>> lux.capitalize()
'Lux, the lady of luminosity'
>>> lux.title()
'Lux, The Lady Of Luminosity'
>>> lux.upper()
'LUX, THE LADY OF LUMINOSITY'
>>> lux.lower()
'lux, the lady of luminosity'
>>> lux.swapcase()
'LUX, THE lADY OF lUMINOSITY'
Format 함수
string % data
{}.format(변수)
f'{변수 또는 표현식}'
sequence 타입
List
리스트는 순차적인 데이터를 나타내는 데 유용, 문자열과는 달리 내부 항목을 변경할 수 있다.
>>> month_list = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
>>> list('League of legends')
['L', 'e', 'a', 'g', 'u', 'e', ' ', 'o', 'f', ' ', 'l', 'e', 'g', 'e', 'n', 'd', 's']
append 함수
>>> sample_list = ['a', 'b', 'c', 'd']
>>> sample_list.append('e')
>>> sample_list
['a', 'b', 'c', 'd', 'e']
extend 함수, +=
>>> fruits = ['apple', 'banana', 'melon']
>>> colors = ['red', 'green', 'blue']
>>> fruits.extend(colors)
>>> fruits
['apple', 'banana', 'melon', 'red', 'green', 'blue']
>>> fruits = ['apple', 'banana', 'melon']
>>> colors = ['red', 'green', 'blue']
>>> fruits += colors
>>> fruits
['apple', 'banana', 'melon', 'red', 'green', 'blue']
insert(offset) 함수
>>> fruits = ['apple', 'banana', 'melon']
>>> fruits.insert(1, 'mango')
>>> fruits
['apple', 'mango', 'banana', 'melon']
del 함수
>>> fruits = ['apple', 'banana', 'melon']
>>> del fruits[0]
>>> fruits
['banana', 'melon']
remove 함수
>>> fruits.remove('mango')
pop, index 함수
In [19]: fruits = ['apple', 'mango', 'banana', 'melon']
In [20]: fruits
Out[20]: ['apple', 'mango', 'banana', 'melon']
In [21]: fruits.pop()
Out[21]: 'melon'
In [22]: fruits
Out[22]: ['apple', 'mango', 'banana']
In [23]: fruits.pop()
Out[23]: 'banana'
In [24]: fruits
Out[24]: ['apple', 'mango']
In [25]: fruits.index('mango')
Out[25]: 1
count 함수
>>> fruits = ['apple', 'mango']
>>> fruits.append('apple')
>>> fruits.append('apple')
>>> fruits.count('apple')
3
sort, sorted, copy 함수
- sort는 리스트를 정렬
- sorted는 리스트 정렬 복사본을 반환
- copy는 똑같은 리스트를 하나 더 생성
Tuple
튜플은 정의 후 내부 항목의 삭제나 수정이 불가능
튜플 생성
>>> fruits_tuple = ('apple', 'banana', 'melon')
>>> fruits_one_tuple = ('apple',)
Dictionary
key-value 형태로 항목을 가지는 자료구조
딕셔너리 생성
>>> empty_dict1 = {}
>>> empty_dict2 = dict()
>>> champion_dict = {
... 'Lux': 'the Lady of Luminosity',
... 'Ahri': 'the Nine-Tailed Fox',
... 'Ezreal': 'the Prodigal Explorer',
... 'Teemo': 'the Swift Scout',
... }
형변환
dict 함수를 사용하여, 두 값의 시퀀스를 딕셔너리로 변환한다.
>>> sample = [[1,2], [3,4], [5,6]]
>>> dict(sample)
{1: 2, 3: 4, 5: 6}
항목 찾기/추가/변경 [key]
>>> champion_dict['Lux']
'the Lady of Luminosity'
>>> champion_dict['Sona'] = 'Maven of the Strings'
>>> champion_dict['Lux'] = 'Demacia'
결합 (update)
>>> item_dict = {
... 'Doran\'s Ring': 400,
... 'Doran\'s Blade': 450,
... 'Doran\'s Shield': 450,
... }
>>> com_dict = {}
>>> com_dict.update(champion_dict)
>>> com_dict.update(item_dict)
>>> com_dict
서로 같은 키가 있을 경우, update에 주어진 딕셔너리의 값이 할당된다.
삭제 (del)
>>> del com_dict['Doran\'s Blade']
>>> del com_dict['Doran\'s Ring']
>>> del com_dict['Doran\'s Shield']
Set
셋은 키만 있는 딕셔너리와 같다.
중복된 값이 존재할 수 없다.
셋 생성
>>> empty_set = set()
>>> champions = {'lux', 'ahri', 'ezreal'}
형변환
문자열, 리스트, 튜플, 딕셔너리를 셋으로 변환할 수 있으며, 중복된 값이 사라진다.
>>> set('ezreal')
{'e', 'z', 'a', 'l', 'r'}
>>> set(champion_dict)
{'Ahri', 'Lux', 'Ezreal', 'Sona', 'Teemo'}