반복문은 되도록이면 객체 그대로를 넘기는 것이 좋다.
index가 필요하면 enmerate를 활용하자.
data = [1, 2, 3, 4, 5]
for x in range(len(data)):
if data[x] < 0:
data[i] = 0
data = [1, 2, 3, 4, 5]
for idx, x in enumerate(data):
if x < 0:
data[idx] = 0
일반 리스트를 반복시킬 경우와 제너레이터를 반복시키는 경우는 장단점이 있다.
List Loop
- 메모리 소모가 심하다.
Generator Loop
- 메모리 소모가 거의 없다.'
보다시피 제너레이터는 메모리를 최소화 한다.
list와 generator의 메모리 차이가 어마무시하다는 것을 알 수 있다.
더하기 기호를 사용해서 문자 또는 문자열을 합치지 않기를 권장
students = ["json", "lee", "kim", "park"]
every_body = ""
for student in students:
every_body += student + " "
students = ["json", "lee", "kim", "park"]
every_body = " ".join(students)
data = []
for i in range(10):
data.append(i)
data = [ x for x in range(10) ]
student = {
"name": "json",
"age": 25
}
"""
KeyError
"""
weight = student["weight"]
"""
returns None
"""
weight = student.get("weight")
"""
returns 0
"""
weight = student.get("weight", 0)
student = {
"name": "json",
"age": 25
}
weight = student.setdefault("weight", 0)
print(student)
# { "name": "json", "age": 25, "weight": 0 }