[Python] for文でリストに値を格納する方法

Pythonでは、for文を使用してリストに値を格納することができます。

リストに値を追加するには、append()メソッドを使用します。

例えば、for文を使って1から5までの数値をリストに追加する場合、append()メソッドを用いて各数値をリストに追加します。

この方法は、リストの要素を動的に増やしたい場合に非常に便利です。

この記事でわかること
  • for文を使ったリストへの基本的な値の追加方法
  • range関数を利用した連続した値の格納方法
  • 条件付きでリストに値を追加する方法
  • ネストされたfor文による2次元リストの作成
  • リスト内包表記を使った簡潔なリスト生成方法

目次から探す

for文を使ったリストへの値の格納

Pythonのfor文は、リストに値を追加する際に非常に便利です。

ここでは、基本的な使い方から応用的な方法までを解説します。

for文でリストに値を追加する基本例

for文を使ってリストに値を追加する基本的な方法を見てみましょう。

# 空のリストを作成
numbers = []
# 1から5までの数字をリストに追加
for i in range(1, 6):
    numbers.append(i)
print(numbers)  # 出力: [1, 2, 3, 4, 5]

この例では、range(1, 6)を使って1から5までの数字を生成し、それをappendメソッドでリストnumbersに追加しています。

range関数を使ったリストへの値の格納

range関数は、指定した範囲の整数を生成するために使用されます。

これをfor文と組み合わせることで、リストに連続した値を簡単に格納できます。

# 空のリストを作成
even_numbers = []
# 2から10までの偶数をリストに追加
for i in range(2, 11, 2):
    even_numbers.append(i)
print(even_numbers)  # 出力: [2, 4, 6, 8, 10]

この例では、range(2, 11, 2)を使って2から10までの偶数を生成し、リストeven_numbersに追加しています。

rangeの第三引数はステップ数を指定します。

条件付きでリストに値を追加する方法

for文を使って、特定の条件を満たす値のみをリストに追加することも可能です。

# 空のリストを作成
squared_numbers = []
# 1から10までの数字のうち、平方数をリストに追加
for i in range(1, 11):
    if i ** 0.5 == int(i ** 0.5):
        squared_numbers.append(i)
print(squared_numbers)  # 出力: [1, 4, 9]

この例では、1から10までの数字の中で平方数(1, 4, 9)のみをリストsquared_numbersに追加しています。

条件式i ** 0.5 == int(i ** 0.5)を使って平方数を判定しています。

応用例

for文を使ったリストへの値の格納は、基本的な使い方だけでなく、応用的な方法も多く存在します。

ここでは、いくつかの応用例を紹介します。

ネストされたfor文でリストに値を格納する

ネストされたfor文を使うことで、2次元リストや複雑なデータ構造を作成することができます。

# 空の2次元リストを作成
matrix = []
# 3x3の行列を作成
for i in range(3):
    row = []
    for j in range(3):
        row.append(i * j)
    matrix.append(row)
print(matrix)  # 出力: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]

この例では、ネストされたfor文を使って3×3の行列を作成しています。

外側のfor文で行を、内側のfor文で列を生成し、それぞれの要素を計算してリストに追加しています。

リスト内包表記を使った効率的な値の格納

リスト内包表記を使うと、for文を使ったリストの生成をより簡潔に記述できます。

# 1から5までの数字をリストに追加
numbers = [i for i in range(1, 6)]
print(numbers)  # 出力: [1, 2, 3, 4, 5]

この例では、リスト内包表記を使って1から5までの数字をリストに追加しています。

リスト内包表記は、コードを短くし、可読性を向上させるのに役立ちます。

複数のリストに同時に値を格納する方法

複数のリストに同時に値を格納する場合、zip関数を使うと便利です。

# 2つの空のリストを作成
list1 = []
list2 = []
# 1から5までの数字を2つのリストに同時に追加
for i, j in zip(range(1, 6), range(6, 11)):
    list1.append(i)
    list2.append(j)
print(list1)  # 出力: [1, 2, 3, 4, 5]
print(list2)  # 出力: [6, 7, 8, 9, 10]

この例では、zip関数を使って2つの範囲を同時にループし、それぞれのリストに値を追加しています。

zip関数は、複数のイテラブルを同時に処理するのに便利です。

よくある質問

for文でリストに値を格納する際のエラーはどう対処する?

for文でリストに値を格納する際に発生する一般的なエラーには、インデックスエラーやタイプエラーがあります。

インデックスエラーは、リストの範囲外のインデックスにアクセスしようとしたときに発生します。

これを防ぐためには、ループの範囲を正しく設定することが重要です。

タイプエラーは、異なるデータ型を操作しようとしたときに発生します。

これを防ぐためには、リストに追加する値のデータ型を確認し、必要に応じて型変換を行うことが必要です。

リスト内包表記とfor文の違いは何?

リスト内包表記とfor文の主な違いは、コードの簡潔さと可読性です。

リスト内包表記は、1行でリストを生成することができ、コードを短くすることができます。

例:squared_numbers = [i**2 for i in range(1, 6)]

一方、for文は、より複雑なロジックを実装する際に柔軟性があります。

リスト内包表記は、簡単なリスト生成に適しており、for文は複雑な処理に適しています。

リストに重複した値を格納しない方法はある?

リストに重複した値を格納しない方法として、setを利用する方法があります。

setは重複を許さないデータ型で、リストをsetに変換することで重複を自動的に排除できます。

例:unique_numbers = list(set(numbers))

また、for文を使って手動で重複をチェックしながらリストに追加することも可能です。

これにより、重複のないリストを作成することができます。

まとめ

Pythonのfor文を使ったリストへの値の格納方法は、基本から応用まで多岐にわたります。

この記事では、for文の基本的な使い方から、リスト内包表記やネストされたfor文、複数のリストへの同時格納などの応用例を紹介しました。

これらの知識を活用して、より効率的で読みやすいコードを書くことを目指しましょう。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • 条件分岐 (17)
  • 繰り返し処理 (29)
  • URLをコピーしました!
目次から探す