[python] 리스트

Soy·2023년 9월 9일
0

리스트 요소 변경하기

  • 변경하려는 인덱스에 변경하려는 요소를 넣어주면 된다.

  • 예시

list_a = [273, 32, 103, "문자열", True, False]
list_a[0] = "변경"
list_a
- 실행결과
["변경", 32, 103, "문자열", True, False]

리스트에 요소 추가하기 : append(), insert(), extend()

  • 리스트.append(요소)
  • 리스트.insert(위치, 요소)
  • 리스트.extend(리스트)
  • 예시(append, insert)
list_a = [1, 2, 3]

# append
list_a.append(4)
list_a.append(5)
print(list_a)

# insert
list_a.insert(0, 10)
print(list_a)
- 실행결과
[1, 2, 3, 4, 5]
[10, 1, 2, 3, 4, 5]
  • 예시(extend)
list_a = [1, 2, 3]
list_a.extend([4, 5, 6])
print(list_a)
- 실행결과
[1, 2, 3, 4, 5, 6]
  • 리스트 연결 연산자(+, *)와 요소 추가(append, insert, extend)의 차이
    리스트 연결 연산자는 원본에 영향을 주지 않아 비파괴적인 반면, 요소 추가는 원본을 변경 시켜 파괴적이다.
    파괴적인 것과 비파괴적인 것을 구분하기 어렵다면, 직접 입력해서 원본에 변화가 있는지 없는지 직접 확인해보는 것이 좋다.

리스트에 요소 제거하기

인덱스로 제거하기 : del, pop()

  • del 리스트[인덱스]
  • 리스트.pop(인덱스)
  • 예시
list_a = [0, 1, 2, 3, 4, 5]

del list_a[1]
print(list_a)

list_a.pop(2)
print(list_a)
- 실행결과
[0, 2, 3, 4, 5]
[0, 2, 4, 5]
  • del의 경우
    del list_a[3:6] 과 같이 슬라이싱을 통해 범위를 지정하여 요소를 제거할 수도 있다.

값으로 제거하기 : remove()

  • 리스트.remove(값)
  • 예시
list_b = [1, 2, 1, 2]
list_b.remove(2)
print(list_b)
- 실행 결과
[1, 1, 2]
  • remove의 경우 지정한 값이 여러 개 있어도 가장 먼저 존재하는 하나만 제거한다. 리스트에 중복된 여러 개의 값을 모두 제거하려면 반복문과 조합해서 사용해야 한다.

모두 제거하기 : clear()

  • 리스트.clear()
  • 예시
list_c = [0, 1, 2, 3, 4, 5]
list_c.clear()
print(list_c)
- 실행 결과
[]

리스트 정렬하기 : sort()

  • 리스트.sort()
  • 예시
list_d = [52, 273, 103, 32, 275, 1, 7]

list_d.sort()   # 오름차순 정렬
print(list_d)

list_d.sort(reverse=True)   # 내림차순 정렬
print(list_d)
- 실행 결과
[1, 7, 32, 52, 103, 273, 275]
[275, 273, 103, 52, 32, 7, 1]

리스트 내부에 있는지 확인하기 : in/not in 연산자

  • 값 in 리스트
  • 예시
list_e = [273, 32, 103, 57, 52]

print(273 in list_e)
print(273 not in list_e)
- 실행 결과
True
False

전개 연산자 : *

  • *리스트 → 리스트[0], 리스트[1], ...

리스트 내부에 사용하는 경우

  • 예시 1
a = [1, 2, 3, 4]
b = [*a, *a]
b
- 실행 결과
[1, 2, 3, 4, 1, 2, 3, 4]
  • 예시 2 (append() 대신 비파괴적으로 사용 가능)
a = [1, 2, 3, 4]
c = [*b, 5]
print(b)
print(c)
- 실행 결과
[1, 2, 3, 4]
[1, 2, 3, 4, 5]

연습문제

profile
Big dreamer

0개의 댓글