1차 프로젝트: 중간 정리 (2)

signet·2021년 2월 21일
0

이번 포스트에서는 list comprehension의 사용법에 대해 정리하고자 한다.

List comprehension

쿼리셋에 들어있는 객체들에서 특정 데이터만을 뽑아 리스트에 넣는 경우, 반복문을 통해 쿼리셋 내부의 객체들에 접근하여 데이터를 뽑아오는 방법을 이용한다. 이런 방법으로 크게 문제될 것은 없지만, 객체 안에 데이터가 다대일 또는 다대다 관계인 경우, 그 안의 데이터에 한번 더 접근하려면 반복문이 한번 더 필요하다.
이 상황에서, 리스트나 딕셔너리 안에서 반복문을 한번 더 실행하기 위한 방법이 list comprehension이다. 이것은 반복문을 이중으로 실행하는 작업을 간략화해주는 것과 동시에, 코드가 실행되는 시간을 줄여주는 이점이 있다.

practices = XXX.objects.all()
example = [practice.name for practice in practices]
for xxx in xxx:
	bbbs = bbb.objects.all()
	example = { 'name' : [aaa.name for bbb in bbbs]

과 같이 적용해볼 수 있다.

0개의 댓글