본문 바로가기

파이썬 프로그래밍/파이썬 심화

[Python] 파이썬 예제. 문자열 내 마음대로 정렬하기

본 게시글은 http://tryhelloworld.co.kr/ 에서 문제를 참고하여 풀이한 게시글입니다.


level 1 의 난이도 쉬움 문제입니다



문제

strange_sort함수는 strings와 n이라는 매개변수를 받아들입니다.
strings는 문자열로 구성된 리스트인데, 각 문자열을 인덱스 n인 글자를 기준으로 정렬하면 됩니다.

예를들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1인 문자 u, e ,a를 기준으로 정렬해야 하므로 결과는 ["car", "bed", "sun"]이 됩니다.
strange_sort함수를 완성해 보세요.

1
2
3
4
5
6
7
8
9
def strange_sort(strings, n):
    '''strings의 문자열들을 n번째 글자를 기준으로 정렬해서 return하세요'''
 
    return []
 
 
 
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( strange_sort(["sun""bed""car"], 1) )
cs






풀이

1
2
3
4
5
def strange_sort(strings, n):
    return sorted(strings, key=lambda strings:strings[n])
 
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( strange_sort(["sun""bed""car"], 1) )
cs

2번째줄을 봐야합니다.


sorted()는 입력한값을 정렬하고 결과값을 list로 출력해주는 함수입니다.

정렬후->list 출력


key는 딕셔너리에서 { } 안에 있는 값중 하나를 뜻하며

Ex) dict{"안녕", 1}로 치면 key="안녕", value=1로 볼 수 있습니다.

여기서 key는 sun, bed, car이 되며 value는 1이 되겠죠


lambda는 함수를 사용할때 쓰는데 주로 한줄로 간편하게 사용하고 싶을때 사용합니다.

지금 우리는 정렬을 해주기 위한 기준을 세우려고 lambda를 사용하겠습니다.


strings:strings[n] 기준을 세우는 것인데, strings를 불러와서 strings[n]번째 기준으로 하겠다는 뜻입니다.


1. 정리하자면 sorted를 사용해서 정렬후 list로 사용을 하겠다.

2. 받아오는 매개변수는 sun, bed, car, 1이다

여기서 sun, bed, car은 key이며 / 1은 value 라고 할수있다.

3. 받아온 수를 정렬할 기준을 세워야 하는데

3-1. 먼저 간단하게 비교하기 위하여 key를 lambda로 만들고,

3-2. strings를 불러와 stings의 n번째를 기준으로 정렬한다.