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() 関数とジェネレータ式を組み合わせることで、コードを短く保ちながら可読性も高めることができます。用途やチームのコーディング規約に応じて、使い分けるとよいでしょう。
-
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つのリストにまとめてい
-
Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで
Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5