python list 자료형에 대한 정리
리스트 자료형
1. 리스트 생성하기
리스트 내부에는 어떠한 자료형도 포함시킬 수 있다.
요소는 ,
로 구분하며 []
로 둘러싸여있다.
empty = [] # 아무것도 포함하지 않는 빈 리스트
number = [1, 2, 3] # 숫자를 요소로 갖는 리스트
string = ['a', 'b', 'c'] # 문자를 요소로 갖는 리스트
number_with_string = [1, 2, 'a', 'b'] # 숫자와 문자를 요소로 갖는 리스트
list_in_list = [[1, 2, 3], 'a', 'b'] # 리스트를 요소로 갖는 리스트
list()
함수로 빈 리스트를 할당할 수 있다.
empty = list()
2. 데이터 타입을 리스트로 변환하기
list()
함수를 사용하여 다른 데이터 타입을 리스트로 변환할 수 있다.
string to list
>>> list('anohk')
['a', 'n', 'o', 'h', 'k']
tuple to list
>>> tuple = ('morning', 'noon', 'night')
>>> list(tuple)
['morning', 'noon', 'night']
using split()
>>> coffee = 'cold brew black'
>>> coffee.split(' ')
['cold', 'brew', 'black']
3. [offset] 사용하기
offset으로 값을 추출하기
리스트는 offset으로 해당하는 값을 추출할 수 있다.
>>> coffee = ['cold', 'brew', 'black']
>>> coffee[0]
'cold'
>>> coffee[1]
'brew'
>>> coffee[2]
'black'
offset을 음수로 적용하면 거꾸로 값을 추출한다.
>>> coffee[-1]
'black'
>>> coffee[-2]
'cold'
>>> coffee[-3]
'brew'
offset으로 요소 변경하기
offset으로 해당하는 값을 얻고, 이를 변경할 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> aroma[0] = 'grape'
>>> aroma
['grape', 'cherry', 'oak']
Slice
리스트를 슬라이스하여 서브시퀀스를 추출한다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> aroma[1:]
['cherry', 'oak']
>>> aroma[-2:]
>>> ['cherry', 'oak']
>>> armoa[::2] # step
['lemon', 'oak']
4. 요소 추가하기
append()
append()
를 사용하여 리스트의 마지막에 새로운 요소를 추가할 수 있다.
>>> aroma.append('leather')
>>> aroma
['lemon', 'cherry', 'oak', 'leather']
insert()
insert()
를 사용하면 원하는 위치에 요소를 추가할 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>>aroma.insert(1, 'leather')
>>>aroma
['lemon', 'leather', 'cherry', 'oak']
extend()
extend()
를 사용하면 다른 리스트와 병합할 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> others = ['leather', 'grape']
>>> aroma.extend(others)
>>> aroma
['lemon', 'cherry', 'oak', 'leather', 'grape']
+=
를 사용하는 것도 가능하다.
>>> aroma += others
>>> aroma
['lemon', 'cherry', 'oak', 'leather', 'grape']
5. 요소 삭제하기
offset 으로 삭제하기
del
은 함수가 아니라 파이썬의 구문이다. (할당)=
의 반대 개념이며, 객체로부터 이름을 분리하고 메모리를 비운다.
>>> del aroma[0]
>>> aroma
['cherry', 'oak']
값으로 삭제하기
offset의 값을 모른다면, remove()
를 사용하여 해당 요소를 삭제할 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> aroma.remove('cherry')
>>> aroma
['lemon', 'oak']
offset으로 요소를 얻고 삭제하기
pop()
을 이용하면 해당 요소를 가져오고 해당 요소를 리스트에서 삭제한다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> aroma.pop()
'oak'
>>> aroma
['lemon', 'cherry']
pop()
인자에 아무것도 넘겨주지 않는다면 -1
이 적용되어 마지막 요소가 추출되고, 삭제된다.
인자에 offset 값을 넣어주면 해당 요소에 대해 동작한다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> aroma.pop(1)
'cherry'
>>> aroma
['lemon', 'oak']
6. EXTRA
index()
값을 알고 있으면 해당 값의 위치를 찾을 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> aroma.index('cherry')
1
in
리스트에 값의 존재 여부를 확인할 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> 'oak' in aroma
True
>>> 'leather' in aroma
False
count()
특정한 값이 리스트에 얼마나 있는지 셀 수 있다.
>>> aroma = ['lemon', 'cherry', 'oak', 'lemon']
>>> aroma.count('lemon')
2
>>> aroma.count('leather')
0
sort()와 sorted()
sort(): 리스트 자체를 내부적으로 정렬한다.
>>> alphabet = ['f', 'c', 'a', 'b']
>>> alphabet.sort()
>>> alphabet
['a', 'b', 'c', 'f']
sorted(): 리스트의 정렬된 복사본을 반환한다.
>>> alphabet = ['f', 'c', 'a', 'b']
>>> sorted_alphabet = sorted(alphabet)
>>> sorted_alphabet
['a', 'b', 'c', 'f']
>>> alphabet
>>> ['f', 'c', 'a', 'b']
기본은 오름차순으로 정렬하며, 역정렬은
sort(reverse=True)
를 사용한다.
sorted()
를 사용하면, 리스트의 원본은 변하지 않는다.
len()
리스트의 요소의 개수를 리턴한다.
>>> aroma = ['lemon', 'cherry', 'oak']
>>> len(aroma)
3
처음 시작하는 파이썬 참조