Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

주어진 목록의 모든 요소를 ​​정렬하고 Python에서 문자열로 병합하는 프로그램

<시간/>

양의 정수 목록이 주어진다고 가정합니다. 목록을 내림차순으로 정렬한 다음 모든 요소를 ​​결합하여 문자열을 만들어야 합니다. 결합된 문자열을 반환합니다.

따라서 입력이 입력 =[415, 78, 954, 123, 5]인 경우 출력은 954785415123

이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • cmp() 함수를 정의합니다. 이것은 l, r
      이 걸립니다
    • ((l)의 문자열 표현 + (r)의 문자열 표현)의 정수 값> ((r)의 문자열 표현 + (l)의 문자열 표현)의 정수 값, then
      • 1을 반환
    • 그렇지 않으면
      • 반환 -1
  • 함수 비교에 따라 목록 입력 정렬
  • 입력의 모든 요소를 ​​문자열로 결합하고 반환합니다.

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

 functools import cmp_to_keydef cmp(l, r):if int(str(l) + str(r))> int(str(r) + str(l)):return 1 else:return -1def solve( 입력):input.sort(key=cmp_to_key(cmp), reverse=True) return "".join(map(str, input))print(solve([415, 78, 954, 123, 5])) 

입력

[415, 78, 954, 123, 5]

출력

954785415123