본문 바로가기
Python

[Python] 리스트

by 기리의 개발로그 2023. 12. 28.

리스트

리스트명 = [요소1, 요소2, 요소3, ...]

파이썬 리스트를 만들 때는 대괄호([])로 감싸 주고 요솟값을 쉼표(,)로 구분해 준다.

a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'beautiful']
d = [1, 2, 'Yang', 'Sanggil']
e = [1, 2, 'Yang', ['Sang', 'Gil']]

리스트 연산


문자열과 마찬가지로 연산도 가능하다.

a = [1, 2, 3]
b = [2, 3, 4]
print(a + b)

a = [1, 2, 3]
b = [4, 5, '6']
print(a + b)

a = [1, 2]
print(a * 3)

a = ['ysg', 0, 1, 2]
print(len(a))
[1, 2, 3, 2, 3, 4]

[1, 2, 3, 4, 5, '6']

[1, 2, 1, 2, 1, 2]

4

숫자형->문자열 변환

a = [1, 2, 3]
print(str(a[0]) + 'Hi')
'1Hi'

리스트 수정/삭제


리스트는 값을 수정하거나 삭제할 수 있다.


리스트 값 수정

a = [1, 2, 3]
a[1] = 0

print(a)
[1, 0, 3]

수정하고자 하는 요소의 개수와 수정될 값의 개수가 1:1이 아니어도 수정이 가능하다.

list = [0, 1, 2, 3, 4, 5]
list[0:2] = 10, 20, 30
print(list)

list1 = [0, 1, 2, 3]
list2 = [0, 1, 2, 3]
list1[0] = 10, 20
list2[0:1] = 10, 20
print(list1)
print(list2)
[10, 20, 30, 2, 3, 4, 5]

[(10, 20), 1, 2, 3]
[10, 20, 1, 2, 3]

리스트 요소 삭제

del 함수를 이용하여 요소를 삭제할 수 있다.

a = [1,2,3,4,5]
del a[1]
print(a)

a = [1,2,3,4,5]
del a[:3]
print(a)
[1, 3, 4, 5]

[4, 5]

리스트 복사


a = [1,2,3]
print(id(a))

b = a
print(id(a))
print(id(b))
195923208

195923208
195923208

위의 결과 id(a)와 id(b)의 값이 같음을 알 수 있다. 즉 a가 가리키는 대상과 b가 가리키는 대상이 동일하다는 것을 의미힌다.

또한, a와 b는 같은 리스트를 가리키기 때문에 a의 값이 변경되면 b의 값도 변경된다.

a[1] = 4
print(a)
print(b)
[1, 4, 3]
[1, 4, 3]

그렇다면 똑같은 리스트를 가지는 서로 다른 객체를 만드는 방법으로
인덱싱([:])과 copy 모듈을 이용하면 서로 다른 객체를 만들 수 있다.

  • 인덱싱([:])
a = [1,2,3]
b = a[:]
print(a == b)
print(a is b)

a[1] = 4
print(a)
print(b)
True
False

[1, 4, 3]
[1, 2, 3]

  • copy 모듈
a = [1,2,3]
from copy import copy
b = copy(a)
print(a is b)

a[1] = 4
print(a)
print(b)
False

[1, 4, 3]
[1, 2, 3]

인덱싱([:])과 copy 모듈 사용 시, 같은 리스트를 가지는 서로 다른 객체가 만들어진 것을 확인할 수 있다.

반응형

'Python' 카테고리의 다른 글

[Python] 리스트 함수  (36) 2024.01.02
[Python] 인덱싱 / 슬라이싱  (26) 2023.12.29
[Python] 문자열 내장함수  (33) 2023.12.27
[Python] 문자열 포맷팅  (45) 2023.12.26
[Python] 문자열  (36) 2023.12.22

댓글