Unit 22. 리스트와 튜플 응용하기

이하연·2020년 6월 16일
0

Python Theory

목록 보기
15/18

22 리스트 조작하기


22.1.1 리스트에 요소 추가하기

append : 요소 하나를 추가
extend : 리스트를 연결하여 확장
insert : 특정 인덱스에 요소 추가

22.1.2 리스트에 요소 하나 추가하기 append

  • 메서드를 호출한 리스트가 변경되며 새 리스트는 생성되지 않음
>>> a = [10, 20, 30]
>>> a.append(500)
>>> a
[10, 20, 30, 500]
>>> len(a)
4
  • 빈 리스트에 값을 추가 가능

  • 리스트 안에 리스트 추가하기

>>> a = [10, 20, 30]
>>> a.append([500, 600])
>>> a
[10, 20, 30, [500, 600]]
>>> len(a)
4

22.1.3 리스트 확장하기 extend

  • extned(리스트)는 리스트 끝에 다른 리스트를 연결하여 리스트를 확장합니다.

  • 메서드를 호출한 리스트가 변경되며 새 리스트는 생성되지 않음

>>> a = [10, 20, 30]
>>> a.extend([500, 600])
>>> a
[10, 20, 30, 500, 600]
>>> len(a)
5

22.1.4 리스트의 특정 인덱스에 요소 추가하기 insert

  • append, extend는 리스트 끝에 요소를 추가

  • insert는 특정 원하는 위치에 요소 추가하는 방법

    insert(인덱스,요소)

>>> a = [10, 20, 30]
>>> a.insert(2, 500)
>>> a
[10, 20, 500, 30]
>>> len(a)
4
  • insert에서 자주 사용하는 패턴 2가지
  1. insert(0, 요소): 리스트의 맨 처음에 요소를 추가
  2. insert(len(리스트), 요소): 리스트 끝에 요소를 추가
    -> 이 방법은 a.append(요소)와 같음
  • 슬라이스 이용하여 추가하기

a[1:1]와 같이 시작인덱스와 끝 인덱스를 같게 지정하면 해당 인덱스의 요소를 덮어쓰지 않으면서 요소 여러 개를 중간에 추가 가능

>>> a = [10, 20, 30]
>>> a[1:1] = [500, 600]
>>> a
[10, 500, 600, 20, 30]

22.2.1 리스트에서 요소 삭제하기

pop: 마지막 요소 또는 특정 인덱스의 요소를 삭제
remove: 특정 값을 찾아서 삭제


22.2.2 리스트에서 특정 인덱스의 요소를 삭제하기 pop

  • pop()은 리스트의 마지막 요소를 삭제한 뒤 삭제한 요소를 반환
>>> a = [10, 20, 30]
>>> a.pop()
30
>>> a
[10, 20]
  • 원하는 인덱스 요소 삭제하기

리스트.pop(인덱스)
del 리스트[인덱스]

22.2.3 리스트에서 특정 값을 찾아서 삭제하기

  • 리스트에서 원하는 값을 찾아서 삭제하기

    remove(값)

  • 또한 리스트에 같은 값이 여러 개 있을 경우 처음 찾은 값을 삭제

>>> a = [10, 20, 30, 20]
>>> a.remove(20)
>>> a
[10, 30, 20]

22.3 리스트에서 특정 값의 인덱스 구하기

  • index(값) : 리스트에서 특정 값의 인덱스를 구하기

  • 같은 값이 여러 개일 경우 처음 찾은 인덱스로 구해짐

>>> a = [10, 20, 30, 15, 20, 40]
>>> a.index(20)
1

22.4 특정 값의 개수 구하기

  • count(값) : 리스트에서 특정 값의 개수를 구함
>>> a = [10, 20, 30, 15, 20, 40]
>>> a.count(20)
2

22.5 리스트의 순서를 뒤집기

  • reverse() : 리스트에서 요소의 순서를 반대로 뒤집기
>>> a = [10, 20, 30, 15, 20, 40]
>>> a.reverse()
>>> a
[40, 20, 15, 30, 20, 10]

22.6 리스트의 요소를 정렬하기

  • sort() / sort(reverse=False) : 리스트의 요소을 작은 순서대로 정렬 [오름차순]

  • sort(reverse=True) : 리스트의 값을 큰 순서대로 정렬 [내림차순]

  • sorted(리스트) : 정렬된 새 리스트를 생성


22.7 리스트의 모든 요소를 삭제하기

  • clear() : 리스트의 모든 요소를 삭제 후 빈 리스트가 됨
>>> a = [10, 20, 30]
>>> a.clear()
>>> a
[]
  • del 리스트[:] : 시작, 끝 인덱스를 생략하여 리스트의 모든 요소를 삭제
>>> a = [10, 20, 30]
>>> del a[:]
>>> a
[]

22.8 리스트를 슬라이스로 조작

  • a[len(a):]는 a.append()와 같은거
>>> a = [10, 20, 30]
>>> a[len(a):] = [500]
>>> a
[10, 20, 30, 500]

22.9 리스트가 비어 있는지 확인하기

    1. if문
if not seq:    # 리스트가 비어 있으면 True
if seq:        # 리스트에 내용이 있으면 True
    1. 시퀀스[-1]
>>> seq = [10, 20, 30]
>>> seq[-1]
30
  • 만약 리스트가 비어 있다면 에러가 발생
seq = []
if seq:               # 리스트에 요소가 있는지 확인
    print(seq[-1])    # 요소가 있을 때만 마지막 요소를 가져옴

0개의 댓글