Python – リストの要素をK桁ごとに再構成する方法
Pythonでは、リスト内の複数の数値を連結し、K桁ごとに区切って新しいリストとして再構成したいケースがあります。このような処理を実現するには、リスト内包表記とappendメソッドを組み合わせるのが効果的です。
サンプルコード
以下に具体的な実装例を示します。
my_list = [231, 67, 232, 1, 238, 31, 793]
print("The list is :")
print(my_list)
K = 3
print("The value of K is ")
print(K)
temp = ''.join([str(ele) for ele in my_list])
my_result = []
for index in range(0, len(temp), K):
my_result.append(int(temp[index: index + K]))
print("The resultant list is :")
print(my_result)
出力結果
The list is : [231, 67, 232, 1, 238, 31, 793] The value of K is 3 The resultant list is : [231, 672, 321, 238, 317, 93]
処理の流れと解説
まず、整数を含むリストmy_listを定義し、コンソールに表示します。
次に、分割する桁数を表す変数Kを初期化し、その値をコンソールに表示します。
リスト内包表記を使ってリストの各要素を文字列型(str)に変換し、joinメソッドで区切り文字なしの1つの文字列に連結します。
連結された文字列は変数tempに代入されます。
結果を格納するための空のリストmy_resultを定義します。
forループとrange関数により、先頭からK桁ずつスライスで文字列を取り出し、int関数で整数に戻してからappendメソッドでリストへ追加していきます。
最後に、再構成されたリストがコンソールに出力されます。
この手法のポイント
このアプローチの利点は、数値リストを一度文字列として連結することで、元の要素の桁数に関係なく、柔軟にK桁ごとのグループ化が行える点です。サンプルのリストには3桁・2桁・1桁の数値が混在していますが、連結後は単純な文字列スライスだけで処理できます。データの整形やID生成、暗号関連の処理など、さまざまな場面で応用できる便利なテクニックなので、ぜひ覚えておきましょう。
-
Pythonでリストから指定したインデックスの複数要素を削除する方法
Pythonのリストから単一の要素を削除するのは、del文とインデックスを組み合わせれば簡単に行えます。しかし、複数のインデックスに該当する要素をまとめて削除したいケースでは、少し工夫が必要です。本記事では、削除対象となるインデックスのリストを指定して、元のリストから該当する要素だけを取り除く方法を2つ紹介します。方法1:sorted()とdelを組み合わせるこのアプローチでは、まず削除したい位置(インデックス)を格納したリストを作成します。その後、降順にソートしてから後ろの要素から順に削除することで、削除処理中にインデックスがずれる問題を回避し、元のリストの構造を保ったまま安全に要素を削除で
-
【初心者向け】Pythonでリストのサイズ(要素数)を取得する方法
リスト(list)は、Pythonにおける代表的なコレクション型のデータ構造の一つです。リストの要素は後から変更でき、重複した値を持つこともできます。本記事では、Pythonでリストのサイズ(長さ)を取得する方法を解説します。具体的には、重複の有無にかかわらず、リストに含まれる全要素の数をカウントする方法を紹介します。リストの長さを取得する基本:len()関数Pythonでリストの要素数を取得するには、組み込み関数の len() を使用します。len() はリストだけでなく、タプル・文字列・辞書などさまざまなコレクションに対しても利用できる汎用的な関数です。サンプルコード以下の例では、「day