본문 바로가기

Study/Tips

파이썬 코딩 팁

파이썬 코딩 팁 작성중

'파이썬 코딩의 기술' 참고

 

코드 규칙


 

- 탭 대신 space 4개

- 한 줄의 문자 길이 < 80

- 변수, 함수는 lowercase_underscore

- protected는 _leading_underscore

- private는 __double_leading_underscore

- 클래스명은 CapitalizedWord

- 상수는 ALL_CAPS

- if len(somelist)==0 대신 if not somelist

 

 

리스트


 

# 리스트 컴프리헨션 이용하기

 

# map과 filter를 사용하는 방법
a = [1,2,3,4,5,6]
alt = map(lambda x: x**2, filter(lambda x : x%2==0, a))

# 리스트 컴프리헨션을 사용하는 방법
chile_ranks = {'ghost':1, 'habanero':2}
rank_dict {rank: name for name, rank in chile_ranks.items()}

 

 

# 컴프리헨션이 클 때는 제너레이터 사용하기

 

컴프리헨션은 새 리스트를 통째로 생성함 => 메모리 많이 필요

따라서 크기가 클 때는 이터레이터를 사용하는 제너레이터를 사용하자.

# 제너레이터 이용
it = (len(x) for x in open('/tmp/my_file.txt'))

 

 

# range보다 enumerate 이용

 

# range 사용하는 방법
for i in range(len(flavor_list)):
    flavor = flavor_list[i]
    print('%d %s' % (i+1, flavor))
    
# enumerate 사용하는 방법
for i, flavor in enumerate(flavor_list, 1): #1부터 enum 시작
    print('%d: %s' % (i, flavor))

 

 

# 동시에 여러 리스트에 접근하여 처리할땐 zip 이용. 단 리스트들의 길이가 같을 때!

 

names = ['str', 'kim', 'leon']
letters = [len(n) for n in names]
for name, count in zip(names, letters):
    if count > max_letters:
        longest_name = name
        max_letters = count

 

 

함수


# return None보다는 예외 발생시키기

 

return None하지말고 그냥 except 에러 발생시키기.

함수를 호출하는 쪽에서 에러 처리하게 만들자.