python 제대로 사용하기

GisangLee·2022년 8월 25일
0

python

목록 보기
2/8

1. len() 보다 enumerate

반복문은 되도록이면 객체 그대로를 넘기는 것이 좋다.
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

2. Generator

일반 리스트를 반복시킬 경우와 제너레이터를 반복시키는 경우는 장단점이 있다.

  • List Loop
    - 메모리 소모가 심하다.

  • Generator Loop
    - 메모리 소모가 거의 없다.'

메모리 비교

보다시피 제너레이터는 메모리를 최소화 한다.
list와 generator의 메모리 차이가 어마무시하다는 것을 알 수 있다.


3. 문자열 더하기

더하기 기호를 사용해서 문자 또는 문자열을 합치지 않기를 권장

고지치 전

students = ["json", "lee", "kim", "park"]

every_body = ""
for student in students:
	every_body += student + " "

고친 후

students = ["json", "lee", "kim", "park"]

every_body = " ".join(students)

4. list comprehension

고치기 전

data = []

for i in range(10):
	data.append(i)

고친 후

data = [ x for x in range(10) ]

5. default values in dict

고치기 전

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 }

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글