⚠️ 이 포스팅은 인프런님의 프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)을 공부하고 정리한 블로그 포스팅입니다. ⚠️
포스팅에 해당하는 목차는 다음과 같습니다:
섹션 3. 파이썬 기초 자료형
- 리스트(3-1)
- 리스트(3-2)
1. 리스트
- 여러 데이터 타입을 [ ] 안에 담을 수 있다
- 리스트는 시퀀스형으로 순서가 존재한다
- 리스트 자료형은 중복, 수정, 삭제가 가능한 데이터 형식이다
- 다른 언어에서는 일반적으로 배열이라고 많이 불린다
- 주로 알고리즘을 풀기 위해 많이 사용된다
2. 리스트 선언
2.1 [ ]를 변수에 할당한다
a = []
print(type(a))
# <class 'list'>
2.2 list( ) 함수를 변수에 할당한다
b = list()
print(type(b))
# <class 'list'>
3. 리스트 특징
서로 다른 자료형을 한 리스트 안에 담을 수 있다
c = [1, 2, 'Alpha', 'Gamma', 'Delta']
d = [3.14, 'Python', False]
리스트안에 리스트를 할당할 수 있다
e = [1, 2, ['Alpha', 'Gamma', 'Delta']]
4. 리스트의 인덱스값
list 안에 있는 데이터는 왼쪽부터 차례대로 인덱스 0, 1, 2를 가리킨다
f = [1, 2, 3]
인덱싱으로 내가 원하는 데이터를 꺼내오기
e = [1, 2, ['Alpha', 'Gamma', 'Delta']]
print(e[2][0])
# Alpha
print(e[2][2])
# Delta
print(e[-1][0])
# Alpha
print(e[-1][-1])
# Delta
인덱싱한 후 리스트 만들기
e = [1, 2, ['Alpha', 'Gamma', 'Delta']]
print(list(e[-1][0]))
# ['A', 'l', 'p', 'h', 'a']
5. 슬라이싱
변수 a가 리스트 형태일때 a[x:y]는 리스트 a의 인덱스 x번부터 y-1까지를 의미한다
e = [1, 2, ['Alpha', 'Gamma', 'Delta']]
print(e[0:])
# [1, 2, ['Alpha', 'Gamma', 'Delta']
print(e[-1][1:3])
# ['Gamma', 'Delta']
# 변수 e에서 -1번째 인덱스값은 리스트 ['Alpha', 'Gamma', 'Delta']다.
# 이 리스트에서 인덱스 1번부터 2번까지의 데이터를 프린트해야하므로 ['Gamma', 'Delta']를 리턴한다
6. 리스트 연산
e = [1, 2, ['Alpha', 'Gamma', 'Delta']]
f = [1, 2, 3]
print(e + f)
# [1, 2, ['Alpha', 'Gamma', 'Delta'], 1, 2, 3]
print(e * 3)
# [1, 2, ['Alpha', 'Gamma', 'Delta'], 1, 2, ['Alpha', 'Gamma', 'Delta'], 1, 2, ['Alpha', 'Gamma', 'Delta']]
print(f * 3)
# [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(e[-1][0] + str(f[1]))
# Alpha2
7. 리스트 값 비교
g = [1, 2, 3]
print(g == g[:3] + g[3:])
# True
print(g[:3] + g[3:])
# [1, 2, 3]
print(g[:3])
# [1, 2, 3]
print(g[3:])
# []
8. 리스트의 id값
리스트도 하나의 주소값을 공유한다
g = [1, 2, 3]
copy = g
print(id(copy) == id(g))
# True
print(id(copy))
# 4462085440
print(id(g))
# 4462085440
9. 리스트 수정
9.1 인덱스번호로 접근해서 새로운 데이터를 넣는 방법
h = [1, 2, 3]
h[0] = ['new data', 'new data', 'new data']
print(h)
# [['new data', 'new data', 'new data'], 2, 3]
9.2 슬라이싱으로 접근해서 새로운 데이터를 넣는 방법
h = [1, 2, 3]
h[0:] = ['new data', 'new data', 'new data']
print(h)
# ['new data', 'new data', 'new data']
9.3 인덱스로 데이터 수정 VS 슬라이싱으로 데이터를 수정
9.3.1 인덱스로 리스트에 데이터를 넣을때는 리스트 그 자체가 들어간다
h = [1, 2, 3]
h[0] = ['x', 'x', 'x']
print(h)
# [['x', 'x', 'x'], 2, 3]
9.3.2 슬라이싱으로 리스트에 데이터를 넣을때는 데이터가 들어간다 (원소가 들어감)
h = [1, 2, 3]
h[0:0] = ['y', 'y', 'y']
print(h)
# ['y', 'y', 'y', 1, 2, 3]
슬라이싱으로 다른 리스트 안에 리스트를 할당시키는 방법
h = [1, 2, 3]
h[3:] = [[4, 5, 6]]
print(h)
# [1, 2, 3, [4, 5, 6]]
10. 리스트 삭제
슬라이싱으로 빈 리스트를 넣어 리스트 데이터를 삭제한다
i = [1, 2, 3]
i[0:1] = []
print(i)
# [2, 3]
만약 인덱스로 빈 리스트를 전달하게 된다면 리스트 삭제가 아닌 빈리스트 그 자체가 들어가게 된다
i = [1, 2, 3]
i[0] = []
print(i)
# [[], 2, 3]
키워드 del을 사용해서 인덱스값으로 데이터 삭제
i = [1, 2, 3]
del i[2]
print(i)
# [1, 2]
del VS remove()
- del은 인덱스 번호로 리스트에 있는 데이터를 제거
- remove()는 데이터값으로 리스트에 있는 데이터를 제거
i = [1, 2, 3]
del i[1]
print(i)
# [1, 3]
i = [1, 2, 3]
i.remove(3)
print(i)
# [1, 2]
11. 리스트의 메소드
11.1 sort()
리스트 안에 있는 데이터를 오름차순으로 정리해주는 함수
j = [35, 8764, 12, 68]
j.sort()
print(j)
# [12, 35, 68, 8764]
11.2 reverse()
리스트 안에 있는 데이터를 거꾸로 리턴하는 함수
j = [35, 8764, 12, 68]
j.reverse()
print(j)
#[68, 12, 8764, 35]
11.3 index()
리스트 안에 있는 데이터의 인덱스값을 가져오는 함수
j = [35, 8764, 12, 68]
print(j.index(35))
# 0
print(j.index(8764))
# 1
print(j.index(12))
# 2
print(j.index(68))
# 3
11.4 append()
리스트 끝에 데이터를 추가해주는 함수
j = [35, 8764, 12, 68]
j.append(7)
print(j)
# [35, 8764, 12, 68, 7]
11.5 insert(인덱스, 새로운 데이터)
리스트에 데이터를 추가해주는 함수로 값을 대체하지 않고 새로운 데이터만 추가한다
j = [35, 8764, 12, 68]
j.insert(1, 'new data')
print(j)
# [35, 'new data', 8764, 12, 68]
append() vs insert()
- append는 리스트 마지막에 데이터 추가
- insert는 데이터를 넣는 곳을 정할 수 있다
11.6 pop()
리스트 맨끝에 있는 데이터를 리턴하고 리턴한 데이터를 삭제한다
j = [35, 8764, 12, 68]
print(j.pop())
# 68
print(j)
# [35, 8764, 12]
11.7 count()
리스트에 해당 데이터가 몇개 있는지 리턴한다
j = [35, 8764, 35, 12, 35, 68]
print(j.count(35))
# 3
11.8 extend()
리스트를 다른 리스트와 합칠때
fruits = ['apple', 'banana']
otherFurits = ['watermelon', 'peach', 'fig']
fruits.extend(otherFurits)
print(fruits)
# ['apple', 'banana', 'watermelon', 'peach', 'fig']'Python' 카테고리의 다른 글
| [파이썬] 딕셔너리 (선언, 출력, 수정, 추가, 관련 함수, in 메소드) (0) | 2022.03.08 |
|---|---|
| [파이썬] 튜플 (튜플 선언과 팩킹 & 언팩킹, 튜플에서 자주 쓰이는 함수 ) (0) | 2022.03.08 |
| [파이썬] 문자열 (이스케이프 코드, 문자열 연산, 문자열을 다루는 함수) (0) | 2022.03.08 |
| [파이썬] 숫자형 데이터 (연산자, 연산하기, 형 변환하기) (0) | 2022.03.08 |
| [파이썬] 파이썬에서 지원하는 자료형 정리 (0) | 2022.03.08 |
댓글