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

Pythonでリスト内の各数値の桁の合計を求める方法

リストに含まれる各数値の「桁の合計」を求めたい場合、シンプルなループ処理と str メソッドを組み合わせることで簡単に実現できます。

Pythonのリストは、整数・浮動小数点数・文字列など、異なるデータ型の値を混在させて格納できる柔軟なデータ構造です。また、str メソッドを使うと、任意の値を文字列型に変換できます。この性質を利用すると、数値を1桁ずつ取り出して合計を計算することが可能になります。

以下に、実際の実装例を示します。

サンプルコード

my_list = [11, 23, 41, 62, 89, 0, 10]
print("リストの内容:")
print(my_list)

my_result = []
for elem in my_list:
    sum_val = 0
    for digit in str(elem):
        sum_val += int(digit)
    my_result.append(sum_val)

print("各数値の桁を合計した結果:")
print(my_result)

実行結果

リストの内容:
[11, 23, 41, 62, 89, 0, 10]
各数値の桁を合計した結果:
[2, 5, 5, 8, 17, 0, 1]

コードの解説

  • まず、対象となるリストを定義し、コンソールに表示します。
  • 次に、計算結果を格納するための空のリストを作成します。
  • 元のリストをループで走査し、各要素を str() で文字列に変換します。これにより、数値を1桁ずつ順番に取り扱えるようになります。
  • 取り出した各桁を int() で整数に戻しながら加算し、その要素全体の桁の合計を求めます。
  • この処理をリスト内のすべての要素に対して繰り返します。
  • 各要素の計算結果は、あらかじめ用意した空のリストに append() で追加していきます。
  • 最後に、結果のリストをコンソールに出力して完了です。

補足:リスト内包表記を使った簡潔な書き方

同じ処理は、リスト内包表記を使うとより簡潔に記述できます。

my_result = [sum(int(d) for d in str(elem)) for elem in my_list]

このように sum() 関数とジェネレータ式を組み合わせることで、コードを短く保ちながら可読性も高めることができます。用途やチームのコーディング規約に応じて、使い分けるとよいでしょう。

  1. Pythonでネストされたリストを指定数ごとにグループ化してフラット化する方法

    このチュートリアルでは、サブリスト(入れ子になったリスト)を含むリストを、指定した数ごとにグループ化しながらフラット化するプログラムを作成します。具体的には、与えられた数値を基準に、サブリストをその数だけずつまとめて1つのリストへ結合していきます。まずは例を見て、動作を確認しましょう。 入力例 lists = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] number = 2 出力例 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]] この例では number = 2 なので、2つのサブリストずつを取り出して1つのリストにまとめてい

  2. Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで

    Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5