📘 Jump to Python
02 파이썬 프로그래밍의 기초, 자료형
02-3 리스트 자료형
- 리스트는 어떻게 만들고 사용할까?
- 리스트의 인덱싱과 슬라이싱
- 리스트의 인덱싱
- 리스트의 슬라이싱
- 리스트 연산하기
- 리스트 더하기(+)
- 리스트 반복하기(*)
- 리스트 길이 구하기
- 리스트의 수정과 삭제
- 리스트의 값 수정하기
- del 함수를 사용해 리스트 요소 삭제하기
- 리스트 관련 함수
- 리스트에 요소 추가하기 - append
- 리스트 정렬 - sort
- 리스트 뒤집기 - reverse
- 인덱스 반환 - index
- 리스트에 요소 삽입 - insert
- 리스트 요소 제거 - remove
- 리스트 요소 끄집어내기 - pop
- 리스트에 포함된 요소 x의 개수 세기 - count
- 리스트 확장 - extend
1. 리스트는 어떻게 만들고 사용할까?
리스트명 = [요소1, 요소 2, 요소 3,...]
a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]
2. 리스트의 인덱싱과 슬라이싱
2.1. 리스트의 인덱싱
리스트[숫자]
a = [1, 2, 3]
리스트의 첫 번째 값 출력하기
print(a[0])
1
리스트의 값들 더하기
print(a[0] + a[2])
4
리스트의 마지막 값 출력하기
print(a[-1])
3
이중 리스트에서 인덱싱 하기
a = [1, 2, 3, ['a', 'b', 'c']]
print(a[-1][0])
'a'
print(a[-1][1])
'b'
print(a[-1][2])
'c'
- 기존의 인덱싱 방법에서 2차원 리스트에서 첫 번째, 두 번째, 세 번째 값을 불러올 수 있다.
삼중 리스트에서 인덱싱 하기
a = [1, 2, ['a', 'b', ['Life', 'is']]]
print(a[2][2][0])
'Life'
2.2. 리스트의 슬라이싱
문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있다.
a = [1, 2, 3, 4, 5]
print(a[0:2])
[1, 2]
문자열의 슬라이싱
a = "12345"
print(a[0:2])
'12'
- 문자열에서 했던 슬라이싱 기법과 동일하다.
추가적인 리스트의 슬라이싱 예시
a = [1, 2, 3, 4, 5]
b = a[:2] # 0~1번째 자리까지 슬라이싱
c = a[2:] # 2번째 자리부터 끝까지 슬라이싱
print(b)
[1, 2]
print(c)
[3, 4, 5]
- a[2]의 값인 3은 포함되지 않는다.
중첩된 리스트에서 슬라이싱 하기
→ 위 예에서 a[3]은 ['a', 'b', 'c']를 나타낸다.a = [1, 2, 3, ['a', 'b', 'c'], 4, 5] print(a[2:5]) [3, ['a', 'b', 'c'], 4] print(a[3][:2]) ['a', 'b']
→→ a[3][:2]는 ['a', 'b', 'c']의 첫 번째 요소부터 세 번째 요소 직전까지의 값, 즉 ['a', 'b']를 나타내는 리스트가 된다.
3. 리스트 연산하기
3.1. 리스트 더하기(+)
리스트 사이에서 (+)는 2개의 리스트를 합치는 기능을 한다.
문자열에서 "abc" + "def" = "abcdef"가 되는 것과 같은 원리이다.
a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)
[1, 2, 3, 4, 5, 6]
3.2. 리스트 반복하기(*)
리스트가 반복되어 새로운 리스트를 만들어 낸다.
문자열에서 "abc" * 3 = "abcabcabc"가 되는 것과 같은 원리이다.
a = [1, 2, 3]
print(a * 3)
[1, 2, 3, 1, 2, 3, 1, 2, 3]
3.3. 리스트 길이 구하기
len()
a = [1, 2, 3]
print(len(a))
3
리스트 연산 오류
a = [1, 2, 3] print(a[2] + "hi") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str'
a[2]에 저장된 값은 "정수(int)"인데 "hi"는 문자열이다.
정수와 문자열은 타입이 다르기 때문에 연산이 불가능하다.print(str(a[2]) + "hi") 3hi
이렇게 데이터 타입을 일치화 시켜주면 문제를 해결할 수 있다.
4. 리스트의 수정과 삭제
4.1. 리스트의 값 수정하기
변경하려는 리스트의 값을 다시 할당해 주면 수정된다.
a = [1, 2, 3]
a[2] = 4
print(a)
[1, 2, 4]
4.2. del 함수를 사용해 리스트 요소 삭제하기
del 객체
a = [1, 2, 3]
del a[1]
print(a)
[1, 3]
슬라이싱 기법으로 리스트의 여러 요소를 한꺼번에 삭제가 가능하다.
# 슬라이싱 기법으로 여러 요소 삭제하기
a = [1, 2, 3, 4, 5]
del a[2:]
print(a)
[1, 2]
5. 리스트 관련 함수
5.1. 리스트에 요소 추가하기
.append()
a = [1, 2, 3]
a.append(4)
print(a)
[1, 2, 3, 4]
a.append([5, 6])
print(a)
[1, 2, 3, 4, [5, 6]]
5.2. 리스트 정렬
.sort()
# 숫자 리스트
a = [1, 4, 3, 2]
a.sort()
print(a)
[1, 2, 3, 4]
# 문자열 리스트
a = ['a', 'c', 'b']
a.sort()
print(a)
['a', 'b', 'c']
5.3. 리스트 뒤집기
.reverse()
정렬한 다음 다시 역순으로 정렬하는 것이 아니라, 현재의 리스트를 그대로 거꾸로 뒤집는 함수이다.
a = ['a', 'c', 'b']
a.reverse()
print(a)
['b', 'c', 'a']
5.4. 인덱스 반환
.index()
소괄호에 있는 값의 위치를 반환한다.
a = [1, 2, 3]
print(a.index(3))
2
print(a.index(1))
0
값이 없을 시에는 오류가 발생한다.
print(a.index(0)) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 0 is not in list
5.5. 리스트에 요소 삽입
.insert(삽입하고자 하는 위치, 삽입하려는 값)
a = [1, 2, 3]
a.insert(0, 4) # 0번째 위치에 4를 삽입
print(a)
[4, 1, 2, 3]
a.insert(3, 5) # 3번째 자리에 5를 삽입
print(a)
[4, 1, 2, 5, 3]
5.6. 리스트 요소 제거
.remove(삭제하려는 값)
a = [1, 2, 3, 1, 2, 3]
a.remove(3)
print(a)
[1, 2, 1, 2, 3]
a.remove(3)
print(a)
[1, 2, 1, 2]
- a가 3이라는 값을 중복으로 갖고 있을 경우, 첫 번째 3만 제거된다.
- 한 번 더 실행하면 다시 3이 삭제된다.
5.7. 리스트 요소 끄집어내기
.pop()
맨 마지막 요소를 리턴하고, 그 요소를 삭제한다.
a = [1, 2, 3]
a.pop() # 아무것도 안 적으면 마지막 요소를 반환 후 삭제
3
print(a)
[1, 2]
a = [1, 2, 3]
a.pop(1) # 1번째 자리의 값을 반환 후 삭제
2
print(a)
[1, 3]
5.8. 리스트에 포함된 요소 x의 개수 세기
.count(x)
리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 리턴한다.
a = [1, 2, 3, 1]
a.count(1)
2
- 리스트 안에 1이 두 개가 있어서 2를 반환한다.
5.9. 리스트 확장
.extend(x)
x에는 리스트만 올 수 있으며, 원래의 리스트에 x 리스트를 더하게 된다.
a = [1, 2, 3]
a.extend([4, 5]) # a에 [4, 5]를 새롭게 추가
print(a)
[1, 2, 3, 4, 5]
b = [6, 7]
a.extend(b)
print(a)
[1, 2, 3, 4, 5, 6, 7] # 리스트 b가 a에 추가됨
'공부 > Python 공부' 카테고리의 다른 글
[Python] 파이썬 프로그래밍의 기초, 자료형_튜플 자료형 (0) | 2025.01.09 |
---|---|
[Python] 파이썬 프로그래밍의 기초, 자료형_숫자형 (0) | 2025.01.06 |
[Python] 모듈의 사용(import) (0) | 2025.01.03 |
[Python] Python 표준 입출력, 표준 입력 (0) | 2025.01.03 |
[Python] Python 표준 입출력, 표준 출력 (1) | 2025.01.02 |