효율적인 Python 코드 작성
Logan Thomas
Scientific Software Technical Trainer, Enthought
list, tuple, set, dict 등print(), len(), range(), round(), enumerate(), map(), zip() 등os, sys, itertools, collections, math 등숫자 리스트를 직접 작성
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range()로 같은 리스트 만들기
# range(start,stop)
nums = range(0,11)
nums_list = list(nums)
print(nums_list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# range(stop)
nums = range(11)
nums_list = list(nums)
print(nums_list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
단계 값을 지정해 range() 사용
even_nums = range(2, 11, 2)
even_nums_list = list(even_nums)
print(even_nums_list)
[2, 4, 6, 8, 10]
객체에 인덱스를 부여한 리스트 생성
letters = ['a', 'b', 'c', 'd' ]
indexed_letters = enumerate(letters)
indexed_letters_list = list(indexed_letters)
print(indexed_letters_list)
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
시작 값을 지정할 수 있음
letters = ['a', 'b', 'c', 'd' ]
indexed_letters2 = enumerate(letters, start=5)
indexed_letters2_list = list(indexed_letters2)
print(indexed_letters2_list)
[(5, 'a'), (6, 'b'), (7, 'c'), (8, 'd')]
객체에 함수를 적용
nums = [1.5, 2.3, 3.4, 4.6, 5.0]
rnd_nums = map(round, nums)
print(list(rnd_nums))
[2, 2, 3, 5, 5]
lambda(익명 함수)와 map()
nums = [1, 2, 3, 4, 5]
sqrd_nums = map(lambda x: x ** 2, nums)
print(list(sqrd_nums))
[1, 4, 9, 16, 25]
효율적인 Python 코드 작성