파이썬 람다 lambda, sort key
2020. 9. 3. 17:36
반응형
c++로 백준 10814번 풀다가 python으로 풀고 싶었는데, 잘 모르겠어서 답 보고 풀었습니다. 제 코드는 항상 길고 복잡한데 왜 남들 코드는 열 줄 안에 끝나나요. 반성하면서 공부를 또 합니다.
n = int(input())
data = []
for i in range(n):
data.append(list(input().split()))
data.sort(key=lambda x: int(x[0]))
for i, j in data:
print(i, j)
짧은 코드지만 공부할 것이 많았습니다.
data list에 append로 추가를 하는데, 그 안에 또 list를 넣었습니다. 입력받은 값을 split으로 나눠준 후 리스트로 만든 다음에 그 것을 data에 저장합니다.
그리고 data를 정렬하는데, 단순히 sort를 사용하는 것이 아닌 key 매개변수를 사용하였습니다. key 매개변수는 어떤 기준으로 정렬을 할 것인지 정합니다.
*lambda
plus_ten = lambda x : x+10이라고 할 때 plus_ten(3)을 출력하면 13이 나옵니다. def와 비슷하지만 더 간결하게 사용할 수 있는 장점이 있습니다. 위에서는 x[0]에는 나이가 있는데 나이를 기준으로 정렬을 할 것이라고 key로 알려줍니다. 그러면 나이를 기준대로 정렬을 하게 되며, 가입 순으로는 따로 정렬을 해줄 필요가 없습니다. 입력받은 순서가 가입 순이기 때문이죠.
반응형
'프로그래밍 > 파이썬' 카테고리의 다른 글
11651 좌표 정렬하기 2 파이썬 / 리스트 안의 리스트 (0) | 2020.09.12 |
---|---|
파이썬 리스트로 한 줄에 여러 값 입력 받기 (0) | 2020.09.07 |
2751번 파이썬 코테 속도 메모리 줄이기 stdin stdout '\n' (0) | 2020.09.02 |
백준 2751 주석 설명 / 파이썬 heap sort 힙 소트 구현 (0) | 2020.09.02 |
파이썬 리스트 범위 지정, 슬라이싱 (0) | 2020.08.18 |