리스트명 = [요소1, 요소2, 요소3, ...]
리스트 예시
>>> a=[]
>>> b=[1,2,3]
>>> c=['Life','is','too','short']
>>> d=[1,2,'Life','is']
>>> e=[1,2,['Life','is']]
>>> a
[]
>>> b
[1, 2, 3]
>>> c
['Life', 'is', 'too', 'short']
>>> d
[1, 2, 'Life', 'is']
>>> e
[1, 2, ['Life', 'is']]
# 비어있는 리스트
>>> a = list()
>>> a
[]
리스트 안에는 어떠한 자료형도 포함할 수 있다.
a = list()로 비어있는 리스트를 생성할 수 있다.
리스트 인덱싱
>>> a = [1,2,3]
>>> a
[1, 2, 3]
>>> a[0] # a[0]이 첫번째 요소값
1
>>> a[0] + a[2]
4
>>> a = [1,2,3,['a','b','c']]
>>> a[0]
1
>>> a[-1] # a[-1]은 리스트 a의 마지막 요소값
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
- 파이썬은 0부터 시작하기 때문에 a[0]이 a의 첫번째 요소이다.
- a[-1]은 리스트 a의 마지막 요솟값이다.
리스트 인덱싱 - 배열의 배열 요소 꺼내기
>>> a[-1][0]
'a'
>>> a[-1][1]
'b'
>>> a[-1][2]
'c'
=> 이중 리스트 뿐만이 아니라 다중 리스트도 동일한 방식으로 요소를 뽑아낸다.
그러나 리스트를 다중으로 중첩해서 사용하는 것은 혼란스러우므로 자주 사용하지는 않는다.
리스트의 슬라이싱
>>> a=[1,2,3,4,5]
>>> a[0:2]
[1, 2]
>>> b=a[2:]
>>> c=a[:2]
>>> b
[3, 4, 5]
>>> c
[1, 2]
=> 문자열 슬라이싱 방법과 동일하다.
리스트 연산하기
리스트 더하기 (+)
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> b+a
[4, 5, 6, 1, 2, 3]
=> + 를 연결한 순서대로 리스트가 합쳐진다.
리스트 반복하기 (*)
>>> a = [1,2,3]
>>> a*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
리스트 길이 구하기 (len(변수))
>>> a = [1,2,3]
>>> len(a)
3
리스트 정수 요소 + 문자
- 오류 발생
# 오류 발생
>>> a = [1,2,3]
>>> a[2] + "hi"
Traceback (most recent call last):
File "<python-input-43>", line 1, in <module>
a[2] + "hi"
~~~~~^~~~~~
=> a[2]에 저장된 값은 정수인데 "hi"는 문자열이기 때문에 오류가 발생한다.
- 오류 발생 해결 (str())
>>> str(a[2]) + "hi"
'3hi'
=> a[2] 정수 요소를 str()로 감싸서 문자로 변경해준다.
리스트의 수정과 삭제
>>> a = [1,2,3]
>>> a[2] = 4
>>> a
[1, 2, 4]
del 함수를 사용해 리스트 요소 삭제하기
>>> a = [1,2,3]
>>> del a[1]
>>> a
[1, 3]
# 슬라이싱 기법을 활용해 여러 개 한꺼번에 삭제하기
>>> a = [1,2,3]
>>> del a[0:2]
>>> a
[3]
=> del a[x]는 x번째 요소를 삭제한다.
del 객체
리스트 관련 함수
리스트에 요소 추가하기 - append
>>> a=[1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
=> append(x)는 리스트의 맨 마지막에 x를 추가하는 함수이다.
리스트 내에는 어떤 자료형도 추가할 수 있다.
>>> a.append([5,6]) # 리스트의 맨 마지막에 [5,6]을 추가
>>> a
[1, 2, 3, 4, [5, 6]]
리스트 정렬 - sort
>>> a = [1,4,3,2]
>>> a.sort()
>>> a
[1, 2, 3, 4]
# 문자도 순서대로 정렬 가능
>>> a = ['a','c','d','b']
>>> a.sort()
>>> a
['a', 'b', 'c', 'd']
>>> a = ['가','다','나']
>>> a.sort()
>>> a
['가', '나', '다']
리스트 뒤집기 - reverse
>>> a = ['b','c','a']
>>> a.reverse()
>>> a
['a', 'c', 'b']
=> reverse 함수는 리스트를 역순으로 뒤집어 준다.
말 그대로 현재의 리스트를 그대로 거꾸로 뒤집는다.
인덱스 반환 - index
>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0
=> index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값(위치값)을 리턴한다.
존재하지 않는 값을 찾으려는 경우엔 오류가 발생한다.
>>> a.index(0)
Traceback (most recent call last):
File "<python-input-75>", line 1, in <module>
a.index(0)
~~~~~~~^^^
ValueError: 0 is not in list
리스트에 요소 삽입 - insert
>>> a = [1,2,3]
>>> a.insert(0,4) # a[0] 위치에 4 삽입
>>> a
[4, 1, 2, 3]
>>> a.insert(3,5) # a[3] 위치에 5 삽입
>>> a
[4, 1, 2, 5, 3]
=> insert(a,b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다.
리스트 요소 제거 - remove
>>> a = [1,2,3,1,2,3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2]
=> remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.
리스트 요소 끄집어 내기 - pop
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]
>>> a.pop(1)
2
>>> a
[1]
- pop() 은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다.
- pop(x)는 리스트의 x번째 요소를 리턴하고 그 요소는 삭제한다.
리스트에 포함된 요소 x의 갯수 세기 - count
>>> a = [1,2,3,1]
>>> a.count(1)
2 # 요소 1이 2개 들어있으므로 2를 리턴한다.
=> count(x)는 리스트 안에 x가 몇개 있는지 조사하여 그 갯수를 리턴하는 함수이다.
리스트 확장 - extend
>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6,7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]
=> extend(x) 에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.
튜플 자료형
- 리스트는 [] / 튜플은 ()
- 리스트는 요솟값의 생성, 수정, 삭제가 가능하지만 튜플은 요솟값을 바꿀 수 없다.
튜플 예시
>>> t1 = ()
>>> t2 = (1,)
>>> t3 = (1,2,3)
>>> t4 = 1,2,3
>>> t5 = ('a','b',('ab','cd'))
- t2 = (1,) 처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표(,)를 반드시 붙여야 한다.
- t4와 같이 소괄호를 생략해도 괜찮다.
=> 튜플과 리스트의 가장 큰 차이는 요솟값을 변화시킬 수 있는지의 여부이다.
즉, 리스트의 요솟값은 변경 가능하고 튜플의 요솟값은 변경이 불가능하다.
튜플의 요솟값을 지우거나 변경하려고 하면 어떻게 될까?
- 튜플의 요솟값을 삭제하려 할 때
>>> t1 = (1,2,'a','b')
>>> del t1[0]
Traceback (most recent call last):
File "<python-input-107>", line 1, in <module>
del t1[0]
~~^^^
TypeError: 'tuple' object doesn't support item deletion
=> 튜플은 요솟값을 지울 수 없다는 오류 메세지 확인 가능
- 튜플의 요솟값을 변경하려 할 때
>>> t1 = (1,2,'a','b')
>>> t1[0] = 'c'
Traceback (most recent call last):
File "<python-input-109>", line 1, in <module>
t1[0] = 'c'
~~^^^
TypeError: 'tuple' object does not support item assignment
=> 튜플의 요솟값 변경 시도 시 오류 발생
튜플 다루기
인덱싱 하기
>>> t1 = (1,2,'a','b')
>>> t1[0]
1
>>> t1[3]
'b'
슬라이싱 하기
>>> t1 = (1,2,'a','b')
>>> t1[1:]
(2, 'a', 'b')
튜플 더하기
>>> t1 = (1,2,'a','b')
>>> t2 = (3,4)
>>> t3 = t1 + t2
>>> t3
(1, 2, 'a', 'b', 3, 4)
=> t1, t2의 요솟값은 변하지 않으며 새로운 t3가 생성
튜플 곱하기
>>> t2 = (3,4)
>>> t3 = t2*3
>>> t3
(3, 4, 3, 4, 3, 4)
튜플 길이 구하기
>>> t1 = (1,2,'a','b')
>>> len(t1)
4
튜플은 요솟값을 변경할 수 없기 때문에 sort, insert, remove, pop과 같은 함수가 없다.
'Python > Do it 점프 투 파이썬' 카테고리의 다른 글
파이썬 프로그래밍 기초 - 자료형의 값을 저장하는 공간, 변수 (0) | 2025.03.25 |
---|---|
파이썬 프로그래밍 기초 - 집합 자료형 / 불 자료형 (2) | 2025.03.24 |
파이썬 프로그래밍 기초 - 문자열 관련 함수들 (0) | 2025.03.11 |
파이썬 프로그래밍 기초 - f 문자열 포매팅 (파이썬 3.6버전부터) (0) | 2025.03.11 |
파이썬 프로그래밍의 기초 - 문자열 포맷팅 (0) | 2025.03.11 |