반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 영국석사
- sql연습문제
- 경사하강법
- 나혼자코딩
- numpy
- 판다스
- 행렬
- Seaborn
- CSS
- 결정트리
- 런던
- matplotlib
- 데이터분석
- HTML
- 유학생
- 코드잇 TIL
- 코딩공부
- 코드잇TIL
- for반복문
- 다항회귀
- 코딩
- 머신러닝
- 선형회귀
- SQL
- 코드잇
- 코딩독학
- 오늘도코드잇
- 로지스틱회귀
- 윈도우함수
- 파이썬
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(파이썬) 리스트 컴프리헨션(List Comprehension)과 사용하는 이유 본문
728x90
반응형
이번 글에서는 리스트 컴프리헨션(list comprension)을 사용하여 빠르고 간단하게 리스트를 만드는 방법에 대해 알아보겠습니다.
1. 리스트 컴프리헨션(List Comprehension)
- 리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법입니다.
- 대괄호 "[", "]"로 감싸고 내부에 for문과 if 문을 사용하여 반복하며 조건에 만족하는 것만 리스트로 생성할 수 있습니다.
- 리스트를 생성하고 for문과 if문을 사용하지 않고 리스트 컴프리헨션을 사용하는 이유는 직관적이고, 여러줄에 쓸걸 한줄에 만들어 주기 때문입니다.
- 심지어 속도도 더 빠릅니다.
- 아래의 코드를 살펴보겠습니다.
capitalized_cities = []
for city in cities:
capitalized_cities.append(city.title())
- 이 코드를 리스트 컴프리헨션을 사용하면 for 반복문을 사용하여 한 줄로 줄일 수 있습니다.
capitalized_cities = [city.title() for city in cities]
2. 리스트 컴프리헨션 안의 조건문 (if문)
- 리스트 컴프리헨션에 조건문을 추가할 수도 있습니다.
- iterable 뒤에 키워드 if를 사용하여 반복할 때마다 조건을 검사할 수 있습니다.
- 9보다 작은 짝수의 제곱만 리스트에 추가해보겠습니다.
squares = [x**2 for x in range(9) if x % 2 == 0]
print(squares)
>>> [0, 4, 16, 36, 64]
- 만약, 아래와 같이 else를 추가하면 구문 오류가 납니다.
squares = [x**2 for x in range(9) if x % 2 == 0 else x + 3]
- else 를 추가하고 싶으면 조건문을 리스트 컴프리헨션 시작 부분, 즉 표현식 바로 뒤로 옮겨야 합니다.
squares = [x**2 if x % 2 == 0 else x + 3 for x in range(9)]
3. 연습문제
(1) 이름의 소문자를 쓰는 리스트 만들기
names = ["Rick Sanchez", "Morty Smith", "Summer Smith", "Jerry Smith", "Beth Smith"]
first_names = [name.split()[0].lower() for name in names]
print(first_names)
>>> ['rick', 'morty', 'summer', 'jerry', 'beth']
(2) 3의 배수 20개 포함하는 리스트 만들기
multiples_3 = [x * 3 for x in range(1, 21)]
print(multiples_3)
>>> [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60]
(3) 65점 까지 passed인 이름의 리스트 만들기
scores = {
"Rick Sanchez": 70,
"Morty Smith": 35,
"Summer Smith": 82,
"Jerry Smith": 23,
"Beth Smith": 98
}
passed = [name for name, score in scores.items() if score >= 65]
print(passed)
>>> ['Rick Sanchez', 'Summer Smith', 'Beth Smith']
🔻(참고)딕셔너리 items🔻
728x90
반응형
'코딩공부 > Python' 카테고리의 다른 글
(파이썬) def 함수 문서화하기 위한 독스트링(docstring) 쉽게 알아보기 (1) | 2024.06.11 |
---|---|
(파이썬) def 함수 정의하고 호출하기, 변수 범위 (0) | 2024.06.11 |
(파이썬) 반복문에서 편리하게 사용가능한 zip과 enumerate 내장 함수 (0) | 2024.06.10 |
(파이썬) for 반복문과 while 반복문에서 break 와 continue 사용하기 (1) | 2024.06.10 |
(파이썬) while 반복문 개념 및 예시, for 반복문과 차이점 (0) | 2024.06.10 |