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

Python-与えられた数のリストから可能な最大数


この記事では、与えられた数のリストから可能な最大数を見つける方法を学びます。問題を解決するための2つの異なる方法を見ていきます。以下の手順に従って問題を解決してください。

  • 順列メソッドのitertoolsモジュールをインポートします。
  • 番号と空のリストでリストを初期化します。
  • リストの順列を繰り返し処理します。
    • すべての組み合わせを結合し、結果を空のリストに追加します。
  • maxメソッドとキーをintとして使用して結果から最大数を見つけます。
  • 文字列を整数に変換して出力します。

コードを見てみましょう。

# importing the module
import itertools

# initializing the list
numbers = [45, 35, 138, 43, 67]

# result
result = []

# permutations
for permutation in itertools.permutations(str(number) for number in numbers):
   result.append(''.join(permutation))

# finding max
maximum = max(result, key=int)

# printing the max
print(int(maximum))

上記のコードを実行すると、次の結果が得られます。

出力

67454335138

問題を解決する別の方法を見てみましょう。問題を解決するために関数をソートします。以下の手順に従ってコードを記述してください。

  • リストを並べ替えられた関数に渡します。
  • 2つの引数を受け入れるget_keyという関数を記述します。
  • str(first)+ str(second)> str(second)+ str(first)else1の場合は-1を返します。
  • joinメソッドを使用して要素のリストを結合します。
  • 整数に変換して結果を出力します。

関数をキーとして使用しているため、functoolsのcmp_to_keyメソッドを使用して関数をキーに変換する必要があります。コードを見てみましょう。

from functools import cmp_to_key

# initializing the list
numbers = [45, 35, 138, 43, 67]

def get_key(first, second):
   if str(first) + str(second) > str(second) + str(first):
      return -1
   return 1

# getting the result
result = sorted(numbers, key=cmp_to_key(get_key))

# joining the result
result = "".join(str(integer) for integer in result)

# printing the result
print(int(result))

上記のコードを実行すると、次の結果が得られます。

出力

67454335138

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. リストからN個の最大の要素を見つけるPythonプログラム

    整数リストが与えられた場合、私たちのタスクはリスト内で最大のN個の要素を見つけることです。 例 Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] アルゴリズム Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest value and store it in a new list. 例 def Nnumbere

  2. 与えられた範囲内で乱数を生成してリストに保存するPythonプログラム?

    ここでは、3つのユーザー入力変数が使用されます。1つは開始番号、もう1つは終了番号、最後の1つは表示する乱数の数です。 Pythonは、乱数を生成するためのランダムモジュールを提供します。ここでは、放射関数とともにランダム関数を使用します。 例 n :: 10 s :: 20 e :: 40 [20, 35, 32, 27, 24, 35, 28, 31, 20, 28] アルゴリズム Randomno(s,e,n) Step 1 : input starting range(s), ending range(e) and number of elements needs to be a