python | lambda 정리, key sort

나경호·2022년 4월 9일
0

Memo | python

목록 보기
7/7
post-thumbnail

lambda

lambda는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 함수를 한줄로 간결하게 만들 때 사용한다. 우리말로는 "람다"라고 읽고 def를 사용해야 할 정도로 복잡하지 않거나 def를 사용할 수 없는 곳에 주로 쓰인다.

사용법은 다음과 같다.

lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식

한번 직접 만들어 보자.

>>> add =lambda a, b: a+b
>>> result = add(3, 4)
>>> print(result)
7

add는 두 개의 인수를 받아 서로 더한 값을 돌려주는 lambda 함수이다. 위 예제는 def를 사용한 다음 함수와 하는 일이 완전히 동일하다.

>>>defadd(a, b):
...return a+b
...
>>> result = add(3, 4)
>>> print(result)
7

※ lambda 예약어로 만든 함수는 return 명령어가 없어도 결괏값을 돌려준다.

*출처|점프투파이썬

key sort

출처 | https://gorokke.tistory.com/38#2.리스트를정렬key사용(sort,_sorted)

**리스트를 정렬 key 사용(sort, sorted)

a = [(1, 2), (5, 1), (0, 1), (5, 2), (3, 0)]
  • key 인자를 정하지 않은 기본적인 sort에선, 튜플 순서대로 우선순위 기본 할당
# 앞의 인자로 정렬됨
b = sorted(a)
b = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]
  • y 인자에 함수를 넘겨주면 우선순위가 정해짐.
c = sorted(a, key = lambda x : x[0])

c = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]

d = sorted(a, key = lambda x : x[1])

d = [(3, 0), (5, 1), (0, 1), (1, 2), (5, 2)]
  • 교할 아이템이 요소가 복수 개일 경우, 튜플로 우선순위를 정해줄 수 있다.

  • -를 붙이면, 현재와 반대차순으로 정렬된다.

e = sorted(a, key = lambda x : (x[0], -x[1]))
=> [(0, 1), (1, 2), (3, 0), (5, 2), (5, 1)]

f = sorted(a, key = lambda x : -x[0])
=> [(5, 1), (5, 2), (3, 0), (1, 2), (0, 1)])
  • 뒤에 문자 순 정렬
s = ['2 A', '1 B', '4 C', '1 A']
s.sorted(s, key=lambda x: (x.split()[1], x.split()[0]))
=> ['1 A', '2 A', '1 B', '4 C']
a_list = ['a', 'b', 'd', 'd', 'b','s']
a_counter = Counter(a_list).most_common()
=> [('b', 2), ('d', 2), ('a', 1), ('s', 1)]

# 문자 역순(아스키 값 이용)
sorted(a_counter,  key=lambda x: (-x[1], -ord(x[0])))
=> [('d', 2), ('b', 2), ('s', 1), ('a', 1)]
profile
기억창고👩‍🌾

0개의 댓글

관련 채용 정보