파이썬에서는 리스트 안에 for 반복문, if 구문을 넣어 코드를 간략화할 수 있습니다. 마찬가지로 딕셔너리 안에도 for 반복문, if 구문을 넣어 코드를 간략화 할 수 있습니다.
dictionary에 for 반복문 넣기 (list가 주어진 경우)
students = ["student a", "student b", "student c", "student d", "student e"]
students라는 리스트가 주어져 있습니다. 이제 리스트 안에 있는 5명의 학생에게 50~100 사이의 점수를 랜덤하게 부여하는 딕셔너리를 만들려고 합니다.
import random
students = ["student a", "student b", "student c", "student d", "student e"]
scores = {student:random.randint(50,100) for student in students}
print(scores)
위와 같이 딕셔너리를 만들 수 있습니다.
코드의 구조를 보면 아래와 같습니다.
variable = {key : value for key in list}
dictionary에 for 반복문 넣기 (dictionary가 주어진 경우)
students = {"student a" : 90,
"student b" : 80,
"student c" : 70,
"student d" : 60,
"student e" : 50}
이번에는 딕셔너리에 있는 학생 5명의 점수를 일괄적으로 10점 올려보도록 하겠습니다.
students = {"student a" : 90,
"student b" : 80,
"student c" : 70,
"student d" : 60,
"student e" : 50}
add_scores = {student : score + 10 for (student, score) in students.items()}
print(add_scores)
위와 같이 코드를 작성하여 모든 학생의 점수를 일괄적으로 10점 올렸습니다.
코드의 구조를 보면 아래와 같습니다.
variable = {new_key : new_value for (key, value) in dictionary.items()}
*딕셔너리 이름 뒤에는 .items()를 붙여야 에러가 발생하지 않습니다.
dictionary에 if 구문 넣기
이번에는 바로 위에서 만든 딕셔너리에서 점수가 80점 이상인 학생만 골라내 새로운 딕셔너리를 만들어 보겠습니다.
students = {"student a" : 90,
"student b" : 80,
"student c" : 70,
"student d" : 60,
"student e" : 50}
add_scores = {student : score + 10 for (student, score) in students.items()}
passed_students = {student : score for (student, score) in add_scores.items() if score >= 80}
print(passed_students)
위의 코드 처럼 딕셔너리 안에 if 구문을 넣으면 점수가 80점 이상인 학생만 골라낼 수 있습니다.
코드의 구조를 보면 아래와 같습니다.
variable = {new_key : new_value for (key, value) in dictionary.items() if statement}
'IT공부 > 파이썬 (Python)' 카테고리의 다른 글
파이썬 공부 11 - list에 for 반복문과 if 구문 넣기 (0) | 2020.12.19 |
---|---|
파이썬 공부 10 - with 구문 (0) | 2020.12.16 |
파이썬 공부 9 - 상속 : super class(부모 클래스)와 sub class(자식 클래스) (0) | 2020.12.11 |
파이썬 공부 8 - turtle 모듈과 tracer, update 함수 (0) | 2020.12.10 |
파이썬 공부 7 - turtle 모듈과 onkey 함수 (1) | 2020.12.09 |