python list append, insert, pop, remove

Haein Kim·2021년 9월 19일
0

TIL

목록 보기
7/14
In [15]: b_list
Out[15]: ['foo', 'pikaboo', 'baz']

In [16]: b_list.append('dwarf')

In [17]: b_list
Out[17]: ['foo', 'pikaboo', 'baz', 'dwarf']

# 특정 위치에 값 추가
In [18]: b_list.insert(1, 'red')

In [19]: b_list
Out[19]: ['foo', 'red', 'pikaboo', 'baz', 'dwarf']

# pop 메서드 
In [20]: b_list.pop(2)
Out[20]: 'pikaboo'

In [21]: b_list
Out[21]: ['foo', 'red', 'baz', 'dwarf']

# remove 메서드
In [22]: b_list.append('foo')

In [23]: b_list
Out[23]: ['foo', 'red', 'baz', 'dwarf', 'foo']

In [24]: b_list.remove('foo')

In [25]: b_list
Out[25]: ['red', 'baz', 'dwarf', 'foo']

# 검사
In [26]: 'dwarf' in b_list
Out[26]: True

In [27]: 'dwarf' not in b_list
Out[27]: False
  • insert 는 append 에 비해서 연산비용이 많이 든다.
  • 추가된 위치 이후의 원소들은 새로 추가 될 원소를 위해 내부저긍로 모두 자리를 옮겨야하기 때문이다.
  • 순차 자료형의 시작과 끝 지점에 원소를 추가하고 싶다면 양방향 큐인 collections.deque 를 사용하자.
  • insert 와 반대개념인 pop 메서드는, 특정 위치의 값을 반환하고 해당 값을 리스트에서 삭제한다.
  • remove 메서드는 리스트에서 제일 앞에 위치한 값부터 이루어진다.
  • in, not in 예약어로 어떤 값이 있는지 검사할 수 있다.
  • 그러나 이는 리스트의 모든 값을 일일이 검사해야 하므로 해시 테이블을 사용한 파이썬의 사전이나 집합 자료구조처럼 즉각적으로 반환하지 않고 많이 느리다!
In [28]: x = [4, None, 'foo']

In [29]: x.extend([7,8,(2,3)])

In [30]: x
Out[30]: [4, None, 'foo', 7, 8, (2, 3)]
  • 리스트를 미리 정의해두었다면 extend 메서드를 사용해서 여러 개의 값을 추가할 수 있다.
  • 리스트를 이어붙이면 새로운 리스트를 생성하고 값을 복사하게 되므로 상대적으로 연산비용이 높다는 점을 기억하자. 큰 리스트일수록 extend 메서드를 사용해서 기존의 리스트에 값을 추가하는 것이 일반적으로 더 나은 선택이다. (그냥 + 연산자 쓰는 것 보다)

출처: 파이썬 라이브러리를 활용한 데이터 분석 (2판)

profile
콘텐츠를 사랑하는 데이터 분석가

0개의 댓글