새벽코딩

1-2 리스트 요소추가, 비파괴적 파괴적 함수 본문

Programming/Python

1-2 리스트 요소추가, 비파괴적 파괴적 함수

midnightcoder 2022. 8. 2. 14:36

리스트에 요소 추가하는 함수

 

1) append()함수 : 리스트 맨뒤에 추가

>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

2) insert()함수 : 특정 위치에 값 추가

// insert(추가할 index, 추가할 value)

>>> a.insert(1,1)
>>> a
[1, 1, 2, 3, 4]

3) extend() 함수 : 여러개의 요소 추가

// extend(iterable) --> iterable 반복될 수 있는 요소로 list같은것들.
>>> a.extend([10,10,10])
>>> a
[1, 1, 2, 3, 4, 10, 10, 10]

비파괴적 함수 및 파괴적 함수

>>> a = "hello"
>>> a
'hello'
>>> a.upper()
'HELLO'
>>> a
'hello'

위와 같이 a 변수의 값은 upper()라는 함수에 의해서 변경되지 않았다 (원래의 값을 유지)

즉, upper()는 비파괴적 함수

 

하지만, list 요소 추가하는 함수들은 대부분 파괴적 함수

>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

위와 같이 a 변수에 값 자체를 [1,2,3,]에서 [1,2,3,4]로 바꿔버림 : 파괴적함수

 

함수를 실행하기 전과 후의 값이 그대로 : 비파괴적 함수

함수를 실행하기 전과 후의 값이 변경됨 : 파괴적함수

 

리스트에 요소를 추가할때 변수의 원본값을 유지하는 방법 중 하나로

아래와 같은 연산자로 값을 추가하면 됨

>>> a = [1,2,3,4]
>>> b = a + [5]
>>> a
[1, 2, 3, 4]
>>> b
[1, 2, 3, 4, 5]