Comprehension

리스트나 딕셔너리를 만드는 간결한 방법을 제공한다.

List Comprehension

[ 계산식 for문 ]

# 보통 하던 방법
areas = []
for i in range(1,11):
    areas = areas + [i*i]

# Comprehension
areas2 = [ i*i for i in range(1,11) ]
  1. for문을 돌면서 i를 가져오고,

  2. 앞의 연산의 값을 리스트에 넣어주고,

  3. 다시 반복문을 실행한다.

[ 계산식 for문 조건문 ]

# Comprehension
areas2 = [ i*i for i in range(1,11) if i%2 == 0 ]

[ 계산식 for문 for문 ]

[ ( x, y ) for x in range(15) for y in range(15) ]

Dictionary Comprehension

[ 형식 for문 ]

enumerate

students = ["나영", "진호", "joy", "grey", "슬기"]
for index, name in enumerate(students):
    print("{}번의 이름은 {}입니다".format(index, name))
students_dict = { 
    "{}번".format(index+1): name for index, name in enumerate(students)
}

zip

  • 두개 이상의 리스트나 스트링을 만들어서 index에 맞게 for...in문에서 하나씩 던저질 수 있게 만들어준다.

scores = [85, 92, 78, 90, 100]
students = ["나영", "진호", "joy", "grey", "슬기"]

for x, y in zip(students, scores):
    print(x,y)
score_dict = {
    student: score for student, score in zip(students, scores)
}

Last updated