PYTHON: 리스트 컴프리헨션의 조건, map과 filter의 활용 예시
2024. 9. 12. 22:26ㆍTroubleshooting
01 같은 로직을 활용하는 세 개의 변수 만들기
answers = [1,2,3,4,5]
a = [1,2,3,4,5] * 2000
b = [2,1,2,3,2,4,2,5] * 1250
c = [3,3,1,1,2,2,4,4,5,5] * 1000
result = [0,0,0]
for i,j in enumerate(answers):
if a[i]==j:
result[0] += 1
if b[i]==j:
result[1] += 1
if c[i]==j:
result[2] += 1
max_result = max(result)
[i+1 for i,j in enumerate(result) if j == max_result]
같은 로직을 사용하지만 각각의 변수에 새로운 값을 할당해야 할 때 tip: 변수 각각에 할당하지 말고 세 개의 값을 포함하는 리스트를 만들어서 인덱스를 활용해서 값을 할당한다.
02 리스트 컴프리헨션 if절과 if else절의 차이
<코드의 차이>
1. 필터링: 첫 번째 코드는 조건을 기준으로 항목을 "필터링"하여 포함시키는 반면, 두 번째 코드는 조건에 따라 각 항목에 대해 "다른 값"을 생성합니다.
2. 리스트 요소 개수: 첫 번째 코드는 조건을 만족하는 항목만 포함되기에 6개를 넣어도 3개가 나올 수 있고, 두 번째 코드는 모든 항목에 대해 조건에 따른 값을 포함하기에 6개를 넣으면 6개가 모두 출력된다.
03 map과 filter의 차이도 위와 유사하다.
1. map: 주어진 함수에 대해 iterable의 각 요소를 적용하여 새로운 iterable을 생성한다. 결과는 항상 같은 길이의 iterable이다.
2. filter: 주어진 함수에 대해 iterable의 각 요소를 적용하고, 그 결과가 True인 요소만을 추출하여 새로운 iterable을 생성한다. 결과의 길이는 원본 iterable의 길이와 다를 수 있다.
04 map 활용 예시 4가지: 유용하니까 기억해둔다.
05 filter 활용 예시 3가지: 유용하니까 기억해둔다.
'Troubleshooting' 카테고리의 다른 글
PYTHON: 시간 복잡도 측면에서 효율적인 코드 작성하기 (0) | 2024.10.03 |
---|---|
PYTHON: count(), if not~, strip(), import Counter, extend, set (0) | 2024.09.25 |
PYTHON: 중복 제거, 문자 위치 찾기, 파생 변수 생성, map(str,변수) (0) | 2024.09.12 |
PYTHON: 소수 만들기 (라이브러리 활용, 비활용편) (0) | 2024.09.05 |
PYTHON: 딕셔너리의 활용편 dictionary.item() (0) | 2024.08.12 |