점프 투 파이썬 02-3 리스트 자료형
https://wikidocs.net/14
Python Documentation
https://docs.python.org/ko/3/library/stdtypes.html#list
📔 객체란 파이썬에서 사용되는 모든 자료형을 말한다.
mutable sequences (가변 시퀀스)
리스트는 공통과 가변 시퀀스 연산들을 모두 구현합니다.
리스트는 여러 가지 방법으로 만들 수 있다.
대괄호[]
로 감싸 주고 각 요소는 콤마,
로 구분해 준다.
리스트명 = [요소1, 요소2, 요소3, ...]
a = [] # 대괄호를 사용하여 빈 리스트 만들기
[a], [a, b, c] # 대괄호를 사용하여 쉼표로 항목 구분하기
a = list() # list 함수 사용해서 빈 리스트 만들기
list(iterable)
>>> s = list('abc') # 문자열 하나씩 나눠서 리스트로 만들어줌
>>> s
['a', 'b', 'c']
>>> s = list((1, 2, 3)) # 튜플을 리스트로 만들어줌
>>> s
[1, 2, 3]
a처럼 비어 있는 리스트도 만들 수 있다.
리스트 안에는 어떠한 자료형도 포함시킬 수 있다.
리스트 인덱싱 가능
인덱싱으로 불러온 요소가 숫자면 연산 가능
a[-1]은 문자열에서와 마찬가지로 리스트 a의 마지막 요솟값을 말한다.
>>> a = [1, 2, 3, ['a', 'b', 'c']]
>>> a[-1][0]
'a'
a[-1]
이 ['a', 'b', 'c']
리스트이고
이 리스트에서 한 번 더 인덱싱 ['a', 'b', 'c']
[0]
하는 꼴
>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
>>> a[2][2][0]
'Life'
리스트 슬라이싱 가능
>>> a = [1, 2, 3, 4, 5]
>>> a[0:2] # a[0]이상 a[2]미만
[1, 2]
😎 마지막에 끝 번호에 해당하는 값은 포함되지 않는다.
시작번호나 끝번호는 생략 가능하다.
[0]
부터 시작[-1]
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
[3, ['a', 'b', 'c'], 4]
>>> a[3][:]
['a', 'b', 'c']
더하기 기호 +
로 간단하게 리스트 2개 합치기
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]
2개의 리스트를 합쳤다.
*
)>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
리스트가 세 번 반복되어 새로운 리스트를 만들어낸다.
len 함수 사용
>>> a = [1, 2, 3]
>>> len(a)
3
정수와 문자열은 서로 더할 수 없다.
정수끼리 더하거나 문자열끼리 더하기 가능
int 함수 이용해서 정수로 바꿔주거나, str 함수 이용해서 문자열로 바꿔주기
mutable sequences (가변 시퀀스)
리스트는 값을 수정하거나 삭제할 수 있다.
>>> a = [1, 2, 3]
>>> a[0] = 4
>>> a
[4, 2, 3]
>>> a = [1, 2, 3]
>>> del a[0]
>>> a
[2, 3]
슬라이싱 기법을 사용하여 삭제 가능하다.
>>> a = [1, 2, 3, 4, 5]
>>> del a[:2]
>>> a
[3, 4, 5]
가변 시퀀스 타입 함수
리스트 변수 이름 뒤에 .
를 붙여서 사용
해당 값 중에서 첫 번째로 나오는 값을 제거한다.
>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3) # 첫 번째로 나오는 3 제거
>>> a
[1, 2, 1, 2, 3]
가변 시퀀스 타입 함수
리스트 변수 이름 뒤에 .
를 붙여서 사용
.pop()
괄호 안에 아무것도 입력 안 하면 맨 마지막 요소 삭제함
>>> a = [1, 2, 3, 4, 5]
>>> a.pop() # 괄호 안에 아무것도 입력 안 하면 기본값 -1로 실행
5
>>> a
[1, 2, 3, 4]
pop(i)
시퀀스의 i번째 요소를 돌려주고 시퀀스에서 그 요소는 삭제한다.
i
의 기본값이 -1
이라서 i
입력 안 하면 기본적으로 마지막 항목이 제거되고 반환된다.
>>> a = [1, 2, 3, 4, 5]
>>> a.pop(0) # a[0] 삭제하고 리스트에서 제거
1
>>> a
[2, 3, 4, 5]
리스트 변수 이름 뒤에 .
를 붙여서 사용
리스트 안에는 어떤 자료형도 추가할 수 있다.
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a.append([5,6]) # 리스트에 리스트 추가
>>> a
[1, 2, 3, 4, [5, 6]]
오름차순 정렬
>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a = ['b', 'a', 'd', 'c']
>>> a.sort()
>>> a
['a', 'b', 'c', 'd']
그냥 원래 순서에서 그대로 뒤집는 것 뿐
내림차순으로 정렬해주는 거 아님
>>> a = ['b', 'a', 'd', 'c']
>>> a.reverse()
>>> a
['c', 'd', 'a', 'b']
리스트에 해당 값이 있으면 그 값의 위치를 돌려준다.
해당 값 없으면 오류 남
>>> a = ['a', 'b', 'c', 'd']
>>> a.index('b')
1 # 파이썬은 0부터 센다.
>>>
>>> a = ['a', 'b', 'c', 'd']
>>> a.index('e') # 리스트에 없는 거 찾아서 오류 남
Traceback (most recent call last):
File "<pyshell#85>", line 1, in <module>
a.index('e')
ValueError: 'e' is not in list
>>> a = ['a', 'b', 'c', 'd']
>>> a.insert(0, 'A')
>>> a
['A', 'a', 'b', 'c', 'd']
리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수
>>> a = ['a', 'b', 'b', 'b']
>>> a.count('b')
3 # 리스트에 'b'가 3개 들어 있다.
.extend()
인수로 리스트만 입력할 수 있다.
>>> a = ['a', 'b', 'c']
>>> a.extend(['d', 'e'])
>>> a
['a', 'b', 'c', 'd', 'e']
>>> b = ['f']
>>> a.extend(b) # b도 리스트여서 가능
>>> a
['a', 'b', 'c', 'd', 'e', 'f']
a.extend(['d', 'e'])
👈 이거는 리스트 연산 더하기랑 같은 거임
a = a + ['d', 'e']
or a += ['d', 'e']