TIL 23 | python, 리스트 응용, 리스트 조작

ryan·2020년 8월 5일
0

Python

목록 보기
11/18

리스트 조작하기(메서드)

리스트 요소 추가

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

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

  • append(요소)
    append는 리스트 끝에 요소 추가
a = [1, 2, 3]
a.append(100)		# a 리스트에 100을 추가함
print(a)

[1, 2, 3, 100]

빈 리스트에 값을 추가할 수도 있음

a = []
a.append(50)
print(a)

[50]

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

a = [1, 2, 3]
a.append([100, 200])
print(a)
print(len(a))

[1, 2, 3, [100, 200]]
4		# [100, 200]는 요소 하나임

리스트 확장하기

리스트에 요소를 여러 개 추가할 때 사용

  • extend(리스트)
    extend는 리스트 끝에 요소 추가
a = [1, 2, 3]
a.extend([100, 200])
print(a)
print(len(a))

[1, 2, 3, 100, 200]
5		# extend를 사용하면 extend에 전단ㄹ된 리스트의 길이만큼 증가

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

리스트이 특정 인덱스에 요소 하나를 추가하기

  • insert(인덱스, 요소)
a = [1, 2, 3]
a.insert(2, 100)
print(a)
print(len(a))

[1, 2, 100, 3]		# 인덱스 2에 100이 추가됨
4

insert에서 자주 사용하는 패턴 2가지

  • insert(0, 요소): 리스트의 맨 처음에 요소를 추가
  • insert(len(리스트), 요소): 리스트 끝에 요소를 추가
a = [1, 2, 3]
a.insert(0, 100)	# 리스트 맨 처음에 100 추가
print(a)

[100, 1, 2, 3]
a = [1, 2, 3]
a.insert(len(a), 100)	# 리스트 끝에 요소 추가
print(a)

[1, 2, 3, 100]

= a.append(100)과 같은 결과

insert는 요소 하나를 추가하므로 insert에 리스트를 넣으면 append처럼 리스트 안에 리스트가 들어간다.

a = [1, 2, 3]
a.insert(2, [100, 200])
print(a)

[1, 2, [100, 200], 3]

리스트 중간에 요소 여러 개를 추가하고 싶다면 슬라이스에 요소 할당하기를 활용하자.

a[2:2] = [100, 200]과 같이 시작 인덱스와 끝 인덱스를 같게 지정하면 해당 인덱스의 요소를 덮어쓰지 않으면서 요소 여러 개를 중간에 추가할 수 있다.

a = [1, 2, 3]
a[2:2] = [100, 200]
print(a)

[1, 2, 100, 200, 3]

리스트에서 요소 삭제하기(메서드)

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

리스트에서 특정 인덱스의 요소를 삭제해보자

pop()은 리스트의 마지막 요소를 삭제한 뒤 삭제한 요소를 반환한다.

a = [1, 2, 3]
print(a.pop())		# 3이 반환되는 것을 보여주기위해서 print()를 사용함
print(a)

3			# 3이 반환됨
[1, 2]
  • pop(인덱스): 해당 인덱스의 요소를 삭제한 뒤 삭제한 요소를 반환한다
a = [1, 2, 3]
print(a.pop(1))
print(a)

2		# 인덱스 1을 반환함
[1, 3]

pop 대신 del을 사용해도 상관없다

a = [1, 2, 3]
del a[1]
print(a)

[1, 3]

리스트에서 특정 값을 찾아서 삭제해보자

remove(값)은 리스트에서 특정 값을 찾아서 삭제한다.

a = [1, 2, 3, 40, 50]
a.remove(40)
print(a)

[1, 2, 3, 50]

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

a = [1, 2, 3, 40, 50, 3]
a.remove(3)
print(a)

[1, 2, 40, 50, 3]

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

  • index(값)
a = [1, 2, 3, 40, 50]
print(a.index(40))

3

리스트에서 특정 값의 개수 구하기

  • count(값)
a = [1, 2, 3, 40, 50, 58, 12, 3, 125, 43, 3]
print(a.count(3))

3		# a 리스트 안에 숫자 3이 3개 있다

리스트의 순서를 뒤집어보자

  • reverse()(
a = [1, 2, 3, 40, 50]]
a.reverse()
print(a)

[50, 40, 3, 2, 1]

리스트의 요소를 정렬해보자

  • sort() 또는 sort(reverse=False): 리스트의 값을 작은 순서대로 정렬(오름차순)
  • sort(reverse=True): 리스트의 값을 큰 순서대로 정렬(내림차순)
a = [1, 24, 3, 15, 432, 21, 9]
a.sort()
print(a)

[1, 3, 9, 15, 21, 24, 432]
a = [1, 24, 3, 15, 432, 21, 9]
a.sort(reverse = True)
print(a)

[432, 24, 21, 15, 9, 3, 1]

sort 메서드 vs sorted 함수

a = [1, 24, 3, 15, 432, 21, 9]
a.sort()	# a의 내용을 변경해서 정렬함
print(a)

[1, 3, 9, 15, 21, 24, 432]



>>> b = [2, 1, 84, 665, 0, 5]
>>> sorted(b)	# 정렬된 새 리스트를 생성함
[0, 1, 2, 5, 84, 665]

리스트의 모든 요소를 삭제해보자

  • clear()
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a.clear()
print(a)

[]
  • del a[:], 시작, 끝 인덱스를 생략해서 모든 요소를 삭제할 수도 있다.
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
del a[:]
print(a)

[]

리스트를 슬라이스로 조작해보자

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[len(a):] = [100]
print(a)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
-> a.append(100)과 같다.

a[len(a):]는 시작 인덱스를 len(a)로 지정해서 리스트의 마지막 인덱스보다 1이 더 큰 상태다. 즉, 리스트 끝에서부터 시작하겠다는 뜻.

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[len(a):] = [100, 200, 300]
print(a)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200, 300]

-> a.extend([100, 200, 300])과 같다
profile
👨🏻‍💻☕️ 🎹🎵 🐰🎶 🛫📷

0개의 댓글