티스토리 뷰

python

Python List tip, lambda

on1ystar 2019. 3. 13. 00:22
728x90
반응형

본 내용은 재학중인 학교 강의에 개인적인 공부를 더한 흔적입니다. 때문에 제가 조금은 오해한 부분이 있을 수 있습니다. 발견하실 경우 댓글로 남겨주시면 정말 감사하겠습니다 !! ( 책은 점프 투 파이썬&파이썬 for Beginner을 참고했습니다. )


Python의 list를 사용할 때 알아두면 좋은 점


list 변수를 만들 때 

a = List() 이런 식으로 미리 선언할 수도 있지만 a = [] 식으로 선언하는 것이 더 간결하고 보기에 좋다. 그리고 미리 변수를 선언해 놓으면 남들이 코드를 분석할 때 사용되는 변수를 미리 보고 예측할 수 있기 때문이다.


List comprehension

대괄호 안에서 for문을 통해 list의 원소를 생성할 수 있다.

예를 들어 저번에 코딩했던 quicksort에서 리스트 초기화를

inputList = []

for x in range(4,len(sys.argv)):

inputList.append(int(sys.argv[x]))

이런 식으로 했는데 이를

inputList = [int(x) for x in sys.argv[4:]]

이렇게 한 줄로 코딩할 수 있다.


List slice

위에서 sys.argv[4:]는 4번 원소부터 끝까지 원소를 나눈다는 의미이다.

이처럼 python에는 매우 유용한 리스트 자르기 기능들이 내장되어 있다.

[n:m]    =    n번 원소부터 m-1번 원소까지

[n:]    =    n번 원소부터 끝까지

[:m]    =    처음부터 m-1번 원소까지

[n:m:s]    =    n번부터 m-1번까지 s만큼 증가하면서

[-1]    =    마지막 원소

[-2:]    =    맨 뒤에서 2개

[:-n]    =    맨 뒤부터 n개 빼고 전부


Lambda (익명함수)

이 함수는 한 번 쓰고 heap에서 증발되는 함수로 대부분의 프로그래밍 언어에서 사용 가능하다.

가독성을 높이기 위해 사용되며, 코드량도 줄일 수 있고 메모리도 절약할 수 있다.

ex)

def hap(x, y):

return x+y


(lambda x,y: x+y)(10,20)

 

728x90
반응형

'python' 카테고리의 다른 글

Python 소켓 모듈 사용  (0) 2019.03.17
Python argparse 명령행 인자 받기  (0) 2019.03.17
Python mutable vs immutable  (0) 2019.03.12
Python Quicksort  (0) 2019.03.08
자료형(1)  (0) 2019.03.06
댓글