7. 리스트 조작

solarrrrr·2021년 7월 22일
0

Python

목록 보기
7/9
post-thumbnail
  1. 리스트에 요소 추가
  • append
  • entend
  • insert

대표적인 요소 추가 메서드는 위 3가지가 있다.

a.append(요소)

이렇게 해 주면 리스트 끝에 요소 하나가 추가된다.
빈 리스트에도 추가 가능.
요소에 리스트를 넣어도 리스트 안에 리스트 형태로
추가가 가능하다.

a.extend(리스트)

이렇게 해 주면 기존 리스트 끝에 붙어서
여러 요소값을 추가할 수 있다.

append와 extend의 공통점은
기존 리스트의 끝에 요소를 추가한다는 것.

a.insert(인덱스 번호, 요소)

insert는 인덱스 번호를 이용해서
원하는 위치에 원하는 요소를 넣을 수 있다.

만약 인덱스 번호를 0으로 설정한다면
리스트의 맨 처음,

len(리스트)를 사용한다면
리스트의 맨 끝에 요소를 추가한다는 말이다.

len(리스트)는 대상 리스트의 요소값의 개수를
가져오게 되는데
인덱스 번호로 치면 가장 끝자리가 된다.

1.1 리스트 중간에 추가

  • 리스트 이름[인덱스 번호: 인덱스 번호]

만약 리스트 중간에 요소를 여러 개 추가하고 싶다면

a[1:2] = [100, 200]

이렇게 슬라이스 때 썼던 인덱스 범위 지정을 이용하면 된다.
a라는 리스트의 1번 인덱스부터 2번 인덱스 자리에
500과 600이라는 요소를 집어넣게 된다.

이 경우 기존 1, 2번째 인덱스에 존재하는 요소는 삭제된다.
하지만 [1:1] 이런 식으로 같은 인덱스 범위를 지정하면
기존 값을 뒤로 밀면서 그 자리에 추가되니 기억하자.

  1. 리스트 요소 삭제
  • pop
  • remove
a.pop() # == del a[인덱스]

pop()은 마지막 요소를 삭제하고 삭제한 요소를 보여준다.
pop(인덱스) 이렇게 지정하면 해당 인덱스의 요소를 삭제하고
역시 삭제한 요소를 보여준다.
del도 똑같은 동작을 한다.

a.remove(요소값)

remove에 요소값을 지정하면 해당 요소를 지울 수 있다.
그런데 만약 똑같은 요소값이 리스트에 여러 개 존재하면
가장 먼저 발견하는 값만 지운다.

!! 참고사항으로 리스트로 스택과 큐 만들기가 있는데
스택과 큐가 뭔지 몰라서 일단 패스
내일 스택과 큐 공부하고 이 부분 다시 읽어봐야겠다.

  1. 리스트에서 특정 값의 인덱스 찾기
  • index
a.index(요소값)

이렇게 입력하면 해당 요소값이 몇 번째 인덱스에 있는지
알려준다.

  1. 특정 값의 개수 구하기
  • count
a.count(요소값)

리스트 안에서 원하는 요소값과 일치하는 요소값이
몇 개인지 개수를 세어준다.

  1. 리스트 순서 뒤집기
  • reverse
a.reverse()

말 그대로 리스트 순서를 반대로 뒤집는다.

  1. 리스트 요소 정렬
  • sort() # sort(reverse=False)랑 같음
  • sort(reverse=True)

sort()는 리스트 안의 요소값을 작은 순서대로 정렬한다.
sort(reverse=False)도 역시 위와 같다.
뒤집지 않을 거라고 하니까.

sort(reverse=True)는 뒤집은 게 맞다고 하니까
뒤집어서 큰 수부터 정렬된다.

6.1 리스트 요소 정렬 비교

  • sort 메서드
  • sorted 내장 함수

sort는 정렬할 때 리스트 값을 변경하는데
sorted는 아예 정렬된 새로운 리스트로 생성한다.

  1. 리스트 모든 요소 삭제
  • clear
a.clear()

이렇게 쓰면 a 리스트 안의 모든 요소가 지워진다.
빈 리스트가 된다.

del a[:]

del을 이렇게 써도 똑같은 결과를 나타낸다.
a 리스트의 (범위 지정 없음은 전체를 의미함) 전체를 지워라.
역시 빈 리스트는 남는다.

  1. 리스트를 슬라이스로 조작
a[len(a):] = [500]

리스트 a의 요소값의 개수를 인덱스 범위 지정의 시작값으로 두고
뒤쪽 범위는 지정을 안 했으니 끝까지로 설정된다.
바로 그 위치에 500을 넣겠다는 것.

[10, 20, 30]이라는 리스트가 있으면
요소값 3개니까 [3:]이라는 범위가 지정되므로
맨 뒤 인덱스부터 끝까지의 위치에 500이 추가되어
[10, 20, 30, 500]이라는 결과가 나타나게 된다.

[500, 600] 이렇게 했다면 이 두 개가 추가된다.

  1. 리스트 비었는지 확인
  • if len(리스트 이름):
  • if not len(리스트 이름):

이렇게 리스트의 요소값 개수를 세어봐서
True를 반환하는지 False를 반환하는지를 통해
빈 리스트인지 체크 가능하다.

단, 파이썬에서는 len을 안 쓰는 방식을
더 많이 사용한다고 한다.

if 리스트:
if not 리스트:

이렇게 len을 떼고 사용하면 된다.

또 리스트의 마지막 인덱스에 접근할 때는
보통 -1을 쓰면 되는데 에러를 뿜으면
빈 리스트라는 뜻이다.

profile
몰입

0개의 댓글