【Python】リストの全要素を結合して昇順に並べ替えた数値を出力する方法
リスト(配列)内のすべての要素を結合し、その結果を昇順に並べ替えた数値として出力したい場合があります。このような処理は、まず数字を文字列として並べ替え、それを整数に変換する関数を定義することで実現できます。さらに別の関数で、元のリストの各要素を文字列に変換して連結し、先ほどの関数に渡すという流れになります。
サンプルコード
以下に具体的な実装例を示します。
def get_sorted_nums(my_num):
my_num = ''.join(sorted(my_num))
my_num = int(my_num)
print(my_num)
def merged_list(my_list):
my_list = list(map(str, my_list))
my_str = ''.join(my_list)
get_sorted_nums(my_str)
my_list = [7, 845, 69, 60, 99, 11]
print("The list is :")
print(my_list)
print("The result is :")
merged_list(my_list)実行結果
The list is : [7, 845, 69, 60, 99, 11] The result is : 11456678999
コードの解説
まず、
get_sorted_numsという名前の関数を定義します。この関数は数値(文字列)を引数として受け取ります。受け取った値は
sorted()関数によって文字単位で昇順に並べ替えられ、join()メソッドで1つの文字列に連結されます。その後、
int()を使って整数型に変換し、コンソールに出力します。これにより先頭の不要な0も自動的に取り除かれます。次に、
merged_listという名前の別の関数を定義します。こちらはリストを引数として受け取ります。map(str, my_list)を使ってリスト内の各整数を文字列に変換し、再度リスト化したうえで、すべての要素をjoin()で連結して1つの文字列を作成します。作成した文字列を
get_sorted_nums関数に渡すことで、並べ替えと整数への変換が行われます。関数の外側では、サンプル用のリストを定義し、その内容をコンソールに表示しています。
最後に
merged_list関数を呼び出すと、すべての桁が昇順に並べ替えられた数値「11456678999」が出力されます。
このように、文字列操作と sorted()・map()・join() といった組み込み関数を組み合わせることで、シンプルなコードで目的の処理を実現できます。
-
Pythonでリストのすべてのサブリストを生成して出力する方法
リストが与えられたとき、そのリストに含まれるすべてのサブリスト(部分リスト)を生成して出力するプログラムを紹介します。要素数 n のリストの場合、空のリストを含めるとサブリストの総数は n×(n+1)/2+1 個になります。 実行例 入力 : list = [1, 2, 3] 出力 : [], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] アルゴリズム 考え方はシンプルです。開始位置 i と終了位置 j の組み合わせをすべて試し、スライスで部分リストを取り出します。 ステップ1 : 対象となるリストを用意します。 ステップ2 : 結果を格納するため、最
-
Pythonで整数配列の重複を除去し、個別の要素だけを出力する方法
整数型の配列が与えられ、その中には重複した要素が含まれている場合があります。この記事では、重複を取り除いて個別(ユニーク)な値だけを出力するPythonプログラムを解説します。 実行例 入力:A = [1, 2, 3, 4, 2, 3, 5, 6] 出力:[1, 2, 3, 4, 5, 6] アルゴリズム このプログラムは次の手順で動作します。 配列の要素を入力として受け取ります。 各要素を先頭から順番に1つずつ取り出します。 取り出した要素が、それ以前にすでに出力されたものかどうかを確認します。 初期値0のフラグ変数を用意し、すでに表示済みなら1、未表示なら0のままにします。 フラ