AI 부트캠프/챕터2(10.14~11.08)

TIL 14 코드카타

musukie 2024. 10. 16. 13:40

강의 외부에서 추가로 알게된 내용

1. 리스트 자체를 수정하는 메서드들 (in-place 수정)

이 메서드들은 리스트 자체를 변경하고, 새로운 리스트를 반환하지 x.

  • sort(): 리스트를 정렬하고, 반환 값은 None.
  • append(): 리스트에 요소를 추가하고, 반환 값은 None.
  • remove(): 리스트에서 특정 값을 제거하고, 반환 값은 None.
  • reverse(): 리스트를 뒤집고, 반환 값은 None.

2. 새로운 리스트를 반환하는 메서드들

이 메서드들은 원본 리스트를 변경하지 않고, 새로운 리스트를 반환 o.

  • sorted(): 원본 리스트는 그대로 두고, 정렬된 새로운 리스트를 반환합니다.
  • copy(): 원본 리스트의 복사본을 반환합니다.
  • map(): 각 요소에 함수를 적용한 새로운 리스트(또는 이터러블)를 반환합니다.
  • filter(): 조건을 만족하는 요소들만 모아 새로운 리스트(또는 이터러블)를 반환합니다.

array.count(x)

  • count(x) : 리스트에서 x라는 값이 몇 번 나왔는지를 세는 메서드.

**int()의 작동 방식의 차이 : append() / sum()

1. append()에서 변환할 때

  • append()는 리스트에 새로운 요소를 하나 추가하는 메서드.
  • append()는 한 번에 하나의 값을 처리하므로, 값을 추가하기 전에 바로 int()를 사용해서 변환할 수 ㅇ.
    n_list.append(int(i))
  • 위 코드에서는 i가 문자열이므로, int(i)를 사용하여 문자열을 정수로 변환한 후 리스트에 추가하는 것. 즉, 여기서는 단일 요소(i)를 처리하므로 그냥 int()만 사용하면 됨.

2. sum()에서 변환할 때

  • sum()은 리스트 전체의 값을 더하는 메서드. 여기서는 리스트에 있는 모든 요소를 한 번에 처리함.
  • 만약 리스트 안에 문자열이 포함되어 있으면, 문자열과 정수는 직접 더할 수 없기 때문에 int()로 변환해야 함.
    하지만, sum()은 리스트의 각 요소를 하나씩 처리하므로, 리스트에 있는 모든 문자열을 정수로 변환하려면 각 요소를 변환하는 반복 작업이 필요함. 이 반복 작업을 도와주는 것이 바로 map() 함수.
    sum(map(int, n_list))
  • map(int, n_list)에서 map()은 n_list의 각 요소에 대해 int()를 적용해서, 문자열을 정수로 변환한 값을 반환함.
    map(int, n_list)는 n_list의 각 요소에 int()를 적용한 반복 가능한 객체(이터러블)를 생성하고, sum()은 그 값을 모두 더함.

Having

  • HAVING 절은 GROUP BY 절과 함께 사용되며, 집계 함수(예: SUM, COUNT, AVG 등)로 계산된 결과에 대한 조건을 설정하는 데 사용됨.
  • HAVING 절은 WHERE 절과 유사하지만, WHERE 절은 행 단위에서 조건을 적용하는 반면, HAVING 절은 그룹화된 결과에 대해 조건을 적용함.