리스트 내포 (list comprehension) 은 짧은 코드로 원하는 리스트를 만들어주는 문법이다. 잘~ 사용하면 유용하긴 한데, 이해가 안되면 오히려 가독성이 떨어지는 문제가 있다. 팀원들의 이해도에 맞추어서 적절하게 사용하길 바란다.
첫번째 경우를 살펴보도록 하자.
# result = [10, 20, 30, 40, 50]
result = []
for i in range(1, 5+1):
result.append(i*10)
print(result)
result = [i*10 for i range(1, 5+1)]
print(result)
이제, 조건을 넣어보자.
# result = [20, 40]
result = []
for i in range(1, 5+1):
if i % 2 == 0:
result.append(i*10)
print(result)
result = [i*10 for i range(1, 5+1) if i % 2 == 0]
print(result)
조건에 else 를 포함시켜보자. 이게 좀 헷갈리는 경우인데, 보통은 else 를 사용하는 경우는 없으니, 왠만하면 사용하지 않는 것으로 하자.
# result = [0, 20, 0, 40, 0]
result = []
for i in range(1, 5+1):
if i % 2 == 0:
result.append(i*10)
else:
result.append(0)
print(result)
# result = [i*10 for i range(1, 5+1) if i%2 == 0 else 0] # 에러 발생
result = [i*10 if i%2 == 0 else 0 for i range(1, 5+1)]
print(result)
이중 반복문도 해보자.
# result = [2, 4, 6, 3, 6, 9, 4, 8, 12]
result = []
for i in range(2, 4+1):
for j range(1, 3+1):
result.append(i*j)
print(result)
result = [i*j for i range(2, 4+1) for j range(1, 3+1)]
print(result)
리스트 내포에 대해서 알아보았는데, 잘 알면 도움이 되지만, 어설프게 알고 쓰면 오히려 독이 될 수도 있으니 주의하자.
'Language > Python' 카테고리의 다른 글
파이썬 타입 힌트 알아보기 (0) | 2024.11.05 |
---|---|
FastAPI (3) : DB(PostgreSQL) 붙여보기 (0) | 2024.10.18 |
FastAPI (2) : 컨트롤러 확장하기 (0) | 2024.10.15 |
FastAPI (1) : 시작해보기 (0) | 2024.10.11 |
.py(파이썬파일)을 .exe(실행파일)로 변환하기 (feat. PyInstaller) (0) | 2024.09.21 |