Python
 Computer >> コンピューター >  >> プログラミング >> Python

特定のリスト内のすべての要素を並べ替えて、Pythonで文字列にマージするプログラム


正の整数のリストが与えられたとしましょう。リストを降順で並べ替えてから、リスト内のすべての要素を結合して文字列を形成する必要があります。結合された文字列を返します。

したがって、入力がinput =[415、78、954、123、5]のような場合、出力は954785415123

になります。

これを解決するには、次の手順に従います-

  • 関数cmp()を定義します。これにはl、r
      がかかります
    • ((l)の文字列表現+(r)の文字列表現)の整数値>((r)の文字列表現+(l)の文字列表現)の整数値の場合、
      • 1を返す
    • それ以外の場合、
      • 戻り値-1
  • 関数compareに従ってリスト入力を並べ替えます
  • 入力のすべての要素を文字列に結合して返します。

理解を深めるために、次の実装を見てみましょう-

from functools import cmp_to_key
def cmp(l, r):
   if int(str(l) + str(r)) > int(str(r) + str(l)):
      return 1
   else:
      return -1

def solve(input):
   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

  1. 指定された文字列のすべての順列を出力するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List):    return ''.join(List) # permutations def permute(a, l, r):    if l == r:       print (toString(a))    e

  2. 偶数要素と奇数要素を2つの異なるリストに分割するPythonプログラム。

    このプログラムでは、ユーザー入力リストを作成し、要素は奇数要素と偶数要素の混合物です。私たちの仕事は、これらのリストを2つのリストに分割することです。 1つは奇数の要素を含み、もう1つは偶数の要素を含みます。 例 Input: [1, 2, 3, 4, 5, 9, 8, 6] Output Even lists: [2, 4, 8, 6] Odd lists: [1, 3, 5, 9] アルゴリズム Step 1 : create a user input list. Step 2 : take two empty list one for odd and another for eve