본문 바로가기

[Python] 한 줄도 너무 길다, List Comprehension 꽃잎 하나가 떨어졌네 어, 다시 올라가네 나비였네! 위 시는 모리다케가 쓴 하이쿠입니다(한 줄도 너무 길다). 하이쿠는 일본에서 오래전부터 쓰여진 한 줄 짜리 정형시입니다. 한 줄밖에 안 되는 묘사 속에 여백을 가득 채우는 번뜩임이 있는 것 같습니다. python에도 하이쿠 같은 표현이 있습니다. 물론 시는 아니지만 한 줄에 많은 것을 내포할 수 있는 문법입니다. 많이들 알고 계시겠지만 list comprehension인데요. list comprehension은 한 list로부터 element들을 불러와 다른 list를 간단히 만들어주는 python의 강력한 문법입니다. numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) .. 더보기
[Python] Main function은 왜 필요한가? 동일한 동작을 반복해서 사용한다면 함수(function)로 만들어야 하죠. 함수를 쓰면 스크립트의 재활용성(reusability) 뿐만아니라 가독성(readibility)도 올라갑니다. 함수는 짧아야 한다고 하죠. 'Clean Code'라는 책에서는 아래와 같이 말합니다. 함수의 첫번째 원칙은 작아야 한다는 것입니다. (The first rule of functions is that they should be small.) 두번째 원칙은 그것보다 더 작아야 한다는 것입니다. (The second rule of functions is that they should be smaller than that.) 그럼 도대체 얼마나 작아야 할까요? 같은 책에서 저자는 다른 프로그래머가 만든 프로그램을 예로 들며 4.. 더보기
[Python] for문에서 range 대신 enumerate 사용하기 For문에서 iterator를 pythonic하게 돌리는 방법입니다. 각 경우에 대해 아래와 같은 방법으로 돌릴 때 가장 효율적이고 가독성이 높습니다. 우선 pythonic하지 않은 방법을 살펴보겠습니다. 다른 언어에 익숙한 분들은 처음에 아래와 같이 for문을 잘 사용합니다. # Non-pythonic for i in range(len(some_list)): emlement = some_list[i] # do something on element 위와 동일하게 작동하는 pythonic way는 아래와 같습니다. # Pythonic for element in some_list: # do something on element 그런데 가끔 index(element의 위치)를 동시에 써야 할 때도 있습니다. .. 더보기