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

PythonでリストのN番目ごとに別のリストを挿入する方法

Pythonでは、既存のリストのN番目ごとの位置に別のリストの要素を挿入したいケースがあります。このような場合、シンプルなfor文による反復処理と、組み込み関数enumerateを組み合わせることで簡単に実現できます。

サンプルコード

以下に具体的な実装例を示します。

my_list = [13, 27, 48, 12, 21, 45, 28, 19, 63]

print("元のリスト :")
print(my_list)

append_list = ['P', 'Y', 'T']

N = 3
print("N の値 :")
print(N)

my_result = []

for index, element in enumerate(my_list):
    if index % N == 0:
        for element_in in append_list:
            my_result.append(element_in)
    my_result.append(element)

print("実行結果 :")
print(my_result)

出力

元のリスト :
[13, 27, 48, 12, 21, 45, 28, 19, 63]
N の値 :
3
実行結果 :
['P', 'Y', 'T', 13, 27, 48, 'P', 'Y', 'T', 12, 21, 45, 'P', 'Y', 'T', 28, 19, 63]

処理の解説

  • まず、整数のリストmy_listを定義し、コンソールに表示します。
  • 挿入用のリストappend_list(ここでは文字'P'、'Y'、'T')を定義します。
  • 間隔を表す変数Nに3を設定し、コンソールに表示します。
  • 結果を格納するための空のリストmy_resultを作成します。
  • enumerate関数を使ってリストを反復処理し、各要素と同時にインデックスも取得します。
  • インデックスをNで割った余り(index % N)が0の場合、つまりN番目ごとの位置に到達したとき、挿入用リストの全要素を結果リストに追加します。
  • その後、元のリストの要素を結果リストに追加します。
  • この処理をすべての要素に対して繰り返し、最終的な結果をコンソールに出力します。

この方法により、元のリストの3番目ごとの位置(インデックス0、3、6)に「P」「Y」「T」が挿入された新しいリストが生成されます。enumerateを使うことで、要素だけでなくインデックスも同時に扱えるため、位置に基づく処理が簡潔に記述できるのがポイントです。

  1. Pythonのappend()とextend()の違いをわかりやすく解説

    Pythonのリストに要素を追加する際によく使われるメソッドが append() と extend() です。どちらもリストの要素数を増やすために使用しますが、動作は大きく異なります。この記事では、それぞれの特徴と違いを具体例とともに解説します。 append()メソッドとは append() は、渡された要素をリストの末尾に「1つの要素」として追加します。引数として渡せるのは1つだけです。仮に引数がリストであっても、そのリスト全体が「1つの要素」として元のリストに加わり、要素数は1だけ増えます。 構文: list_name.append(値) ※ 引数は1つのみ append()の使用

  2. Pythonでリストに要素を追加する方法:append・insert・extendの使い方を解説

    Pythonでは、リストに新しい要素を追加する方法がいくつか用意されています。目的に応じてappend()、insert()、extend()の3つのメソッドを使い分けることで、効率的にリストを操作できます。この記事では、それぞれのメソッドの特徴と具体的な使い方をサンプルコード付きで解説します。1. append():リストの末尾に要素を追加するリストの末尾に単一の要素を追加したい場合は、append()メソッドを使います。引数として渡したオブジェクト1つが、メソッドを呼び出したリストの最後に追加されます。サンプルコードmy_list = [2, 3, 1, -4, -1, -4] my_li