- 리스트에 요소 추가
- 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] 이런 식으로 같은 인덱스 범위를 지정하면
기존 값을 뒤로 밀면서 그 자리에 추가되니 기억하자.
- 리스트 요소 삭제
- pop
- remove
a.pop() # == del a[인덱스]
pop()은 마지막 요소를 삭제하고 삭제한 요소를 보여준다.
pop(인덱스) 이렇게 지정하면 해당 인덱스의 요소를 삭제하고
역시 삭제한 요소를 보여준다.
del도 똑같은 동작을 한다.
a.remove(요소값)
remove에 요소값을 지정하면 해당 요소를 지울 수 있다.
그런데 만약 똑같은 요소값이 리스트에 여러 개 존재하면
가장 먼저 발견하는 값만 지운다.
!! 참고사항으로 리스트로 스택과 큐 만들기가 있는데
스택과 큐가 뭔지 몰라서 일단 패스
내일 스택과 큐 공부하고 이 부분 다시 읽어봐야겠다.
- 리스트에서 특정 값의 인덱스 찾기
- index
a.index(요소값)
이렇게 입력하면 해당 요소값이 몇 번째 인덱스에 있는지
알려준다.
- 특정 값의 개수 구하기
- count
a.count(요소값)
리스트 안에서 원하는 요소값과 일치하는 요소값이
몇 개인지 개수를 세어준다.
- 리스트 순서 뒤집기
- reverse
a.reverse()
말 그대로 리스트 순서를 반대로 뒤집는다.
- 리스트 요소 정렬
- sort() # sort(reverse=False)랑 같음
- sort(reverse=True)
sort()는 리스트 안의 요소값을 작은 순서대로 정렬한다.
sort(reverse=False)도 역시 위와 같다.
뒤집지 않을 거라고 하니까.
sort(reverse=True)는 뒤집은 게 맞다고 하니까
뒤집어서 큰 수부터 정렬된다.
6.1 리스트 요소 정렬 비교
- sort 메서드
- sorted 내장 함수
sort는 정렬할 때 리스트 값을 변경하는데
sorted는 아예 정렬된 새로운 리스트로 생성한다.
- 리스트 모든 요소 삭제
- clear
a.clear()
이렇게 쓰면 a 리스트 안의 모든 요소가 지워진다.
빈 리스트가 된다.
del a[:]
del을 이렇게 써도 똑같은 결과를 나타낸다.
a 리스트의 (범위 지정 없음은 전체를 의미함) 전체를 지워라.
역시 빈 리스트는 남는다.
- 리스트를 슬라이스로 조작
a[len(a):] = [500]
리스트 a의 요소값의 개수를 인덱스 범위 지정의 시작값으로 두고
뒤쪽 범위는 지정을 안 했으니 끝까지로 설정된다.
바로 그 위치에 500을 넣겠다는 것.
[10, 20, 30]이라는 리스트가 있으면
요소값 3개니까 [3:]이라는 범위가 지정되므로
맨 뒤 인덱스부터 끝까지의 위치에 500이 추가되어
[10, 20, 30, 500]이라는 결과가 나타나게 된다.
[500, 600] 이렇게 했다면 이 두 개가 추가된다.
- 리스트 비었는지 확인
- if len(리스트 이름):
- if not len(리스트 이름):
이렇게 리스트의 요소값 개수를 세어봐서
True를 반환하는지 False를 반환하는지를 통해
빈 리스트인지 체크 가능하다.
단, 파이썬에서는 len을 안 쓰는 방식을
더 많이 사용한다고 한다.
if 리스트:
if not 리스트:
이렇게 len을 떼고 사용하면 된다.
또 리스트의 마지막 인덱스에 접근할 때는
보통 -1을 쓰면 되는데 에러를 뿜으면
빈 리스트라는 뜻이다.