Python でリストを連結する方法

Python Derisutowo Lian Jiesuru Fang Fa



Python リストは、アイテムのコレクションの保存と操作を可能にする多用途で広く使用されているデータ構造です。リストを操作するときの一般的な操作の 1 つは、2 つ以上のリストを結合して新しいリストを作成する連結です。このプロセスは、データを結合したり、小さなリストから大きなリストを作成したりする場合に特に便利です。リストの連結はさまざまな方法を使用して実現できます。Python でリストを効率的に操作するには、これらのテクニックを理解することが重要です。数値、文字列、または複雑なオブジェクトのリストを結合する場合でも、リストの連結をマスターすると、さまざまな方法でデータを操作および整理できるようになります。

例 1: 「+」演算子を使用したリストの連結

Python では「+」演算子を使用してリストを連結できます。 「+」演算子を使用すると、2 つ以上のリストを結合して新しいリストを形成できます。リストで「+」演算子を使用すると、新しいリストが作成され、元のリストの要素が出現順に新しいリストにコピーされます。

簡単な例を次に示します。







シート1 = [ 1 2 3

リスト2 = [ 4 5 6

結果リスト = リスト1 + リスト2

印刷する ( 結果リスト

この図には、「list1」と「list2」という 2 つのリストがあります。 「+」演算子を使用してそれらを 1 つのリストに統合します。リストで使用する場合、「+」演算子はリストを連結します。これは、2 番目のリストの要素を最初のリストの末尾に結合することを意味します。したがって、「result_list = list1 + list2」を実行すると、「result_list」には「list1」と「list2」の両方の要素が連結された順序で含まれます。





この方法は簡潔ですが、新しいリストが作成されるため、コピー作成のオーバーヘッドのため、大きなリストの場合は効率的ではない可能性があることに注意してください。





例 2: Extend() メソッドの使用

反復可能オブジェクトの項目は、extend() メソッドを使用して既存のリストの末尾に追加できます。新しいリストを作成する「+」演算子とは異なり、元のリストをその場で変更します。

クラス内の生徒のリストがあり、extend() メソッドを使用して最近参加した新しい生徒の名前を追加して、このリストを拡張したいとします。以下にその方法を示します。



クラスの生徒 = [ 「アリス」 「ベラ」 「チャーリー」

新入生 = [ 「デビッド」 『エヴァ』 'アダム'

クラス_学生。 伸ばす ( 新入生

印刷する ( 「学生リストの更新:」 クラスの生徒

この例では、元のリスト「class_students」には、既存の学生の名前が含まれています。 「new_students」リストには、最近クラスに参加した生徒の名前が含まれています。 extend() メソッドを適用することで、元のリストの末尾に新入生の名前を追加します。

例 3: 連結に「+=」演算子を適用する

「+=」演算子は、extend() メソッドの短縮形です。リストをその場で変更し、右側のリストの要素を左側のリストに結合します。

お気に入りの色のリストがあり、「+=」演算子を使用してさらに色を追加して更新したいとします。

お気に入りの色 = [ '青' '緑' '赤'

追加の色 = [ '紫' 'オレンジ' '黄色'

お気に入りの色 + = 追加の色

印刷する ( 「お気に入りの色を更新しました:」 お気に入りの色

このシナリオでは、「favorite_colors」で表されるお気に入りの色のリストから始めます。次に、「Additional_colors」リストに含めたい新しい色がいくつかあります。 「+= 演算子」を使用して、新しい色を既存のお気に入りと組み合わせ、「favorite_colors」リストを変更します。

操作後、「更新されたお気に入りの色」を印刷すると、次の結果が表示されます。

例 4: 「*」演算子の使用

「*」演算子はリストの複製に使用できます。ただし、リストに適用すると、要素を繰り返すことでリストを連結できます。

以下に例を示します。

オリジナルリスト = [ 1 2 3

連結リスト = オリジナルリスト * 3

印刷する ( 連結リスト

この場合、要素 [1, 2, 3] を含む「original_list」から始めます。 「*」演算子を使用して、元のリストの要素を 3 回繰り返した「concatenated_list」という新しいリストを作成します。

このアプローチは連結ではあまり一般的ではありませんが、Python の演算子の柔軟性を示しています。

例 5: Itertools.chain() 関数の適用

itertools.chain() 関数は「itertools」モジュールの一部であり、反復可能 (リスト、タプル、その他の反復可能オブジェクトなど) を単一の「反復可能」に連結するために使用されます。他の連結メソッドとは異なり、 itertools.chain() は新しいリストを作成しませんが、入力反復可能オブジェクトの要素に対する反復子を生成します。

から イターツール 輸入

L1 = [ 1 2 3

L2 = [ 'バツ' 'そして' 'と'

concatenated_iterable = ( L1 L2

結果リスト = リスト ( concatenated_iterable

印刷する ( 結果リスト

この例では、2 つのリストがあります。「L1」には数値 [1、2、3] が含まれ、「L2」にはアルファベット文字 [「x」、「y」、「z」] が含まれます。 itertools.chain() 関数を使用して、これらのリストを「concatenated_iterable」で表される単一の反復可能オブジェクトに連結します。次に list() 関数を適用して反復可能オブジェクトをリストに変換し、結合されたリスト [1, 2, 3, “x”, “y”, “z”] が生成されます。

例 6: リストのスライス

リスト スライスは、インデックスの範囲を提供することにより、リストのサブセットを取得できる手法です。これには、角括弧内でコロン (:) 演算子を使用して、開始値、停止値、およびオプションでステップ値を示すことが含まれます。

コード例は次のとおりです。

実際のリスト = [ 1 2 3 4 5

スライスされたリスト = 実際のリスト [ 1 : 4

印刷する ( スライスされたリスト

この図は、要素 [1、2、3、4、5] を含む「actual_list」として示される元の数値リストから始まります。 Python の強力な機能であるリスト スライスを使用して、リストの特定のセグメントを抽出します。このインスタンスでは「actual_list[1:4]」スライスが使用され、インデックス 1 からインデックス 3 までの要素が選択されます (インデックス 4 からは選択されません)。結果は、スライスされた部分 [2, 3, 4] を含む、「sliced_list」という名前の新しいリストです。

例 7: Zip() 関数による連結

zip() 関数は、複数の反復可能オブジェクトの要素を結合し、対応する要素のペアまたはタプルを作成します。同じインデックスにある各反復の要素を使用して、これらのペアが作成されます。

学生 = [ 「アリス」 'ボブ' 「チャーリー」

成績 = [ 85 92 78

学生の学年のペア = ジップ ( 学生 成績

result_dict = 辞書 ( 学生の学年のペア

印刷する ( 「学生と学年のペア」 result_dict

この例では、zip() 関数は、「students」リストの生徒名と、「grade」リストの対応する成績を組み合わせ、各生徒がそれぞれの学年に関連付けられた辞書を作成します。

結論

結論として、Python ではリストを連結するさまざまな方法が提供されており、それぞれに利点があります。単純な「+」演算子からより微妙な zip() 関数に至るまで、さまざまなメソッドを調査するにつれて、Python が多様なプログラミング スタイルや好みに対応していることが明らかになりました。現在の作業に応じて、可読性、メモリ効率、処理されるデータの種類などの要素によって、どの方法が最適かが決まります。