ゼファーネットのロゴ

Python リスト : Python リストについて知っておくべきことすべて

日付:

目次

Python リストは、角括弧 ([]) で囲まれた順序付けされた項目のコレクションです。 さまざまなタイプの要素を格納でき、変更可能です。つまり、その内容を変更できます。 リストは、インデックス付け、スライス、要素の追加、挿入、削除、並べ替え、反転などのさまざまな操作をサポートします。 これらは、Python プログラムでデータを整理および操作するためによく使用されます。

これらは、アイテムのコレクションを保存および操作するために使用されます。 これらは、データの整理、要素の反復、コンテンツの変更、並べ替え、保存されたデータに対するさまざまな操作の実行に柔軟性をもたらします。

次に、このトピックをさらに深く掘り下げて、リストの作成および変更方法、いくつかの一般的なリスト操作、リストの内包表記、反復、操作テクニックなど、そのさまざまな要素を理解しましょう。

リストの作成とアクセス

Python でリストを作成するには、カンマ区切りの値を角括弧 ([]) で囲みます。 この構文はリスト構造を定義します。 リストには、数値、文字列、または他のリストなど、さまざまなタイプの要素を含めることができます。 リスト内の要素の順序は保持されます。つまり、要素にはインデックスが付けられ、位置によってアクセスできます。

リストを変数に割り当てることで、リストを作成および初期化できます。 以下に例を示します。

果物 = ['リンゴ'、'バナナ'、'オレンジ']

この場合、「リンゴ」、「バナナ」、「オレンジ」の XNUMX つの要素を含む、fruits というリストが作成されています。

ここで、リスト内の要素にアクセスするには、取得する要素のインデックスとともに角括弧を使用します。 インデックス付けは最初の要素の 0 から始まり、後続の要素ごとに 1 ずつ増加します。 例えば:

first_fruit = Fruits[0] # 最初の要素にアクセスします: 'apple'
Second_fruit = Fruit[1] # XNUMX 番目の要素にアクセスします: 'banana'

負のインデックスを使用して、リストの末尾から要素にアクセスすることもできます。 例えば:

last_fruit = Fruit[-1] # 最後の要素にアクセスします: 'orange'

Python には、リストから要素のサブセットを抽出するためのスライス構文も用意されています。 コロン (:) を使用してインデックスの範囲を指定します。 例えば:

subset = Fruit[1:3] # インデックス 1 から 2 までの要素を取得します: ['banana', 'orange']

この場合、サブセット リストには、元の果物リストの XNUMX 番目と XNUMX 番目の要素が含まれます。

リストの変更と更新

リストに要素を追加するには、append() メソッドを使用してリストの末尾に項目を追加するか、insert() メソッドを使用して特定の位置に項目を挿入します。 例えば:

果物 = ['リンゴ', 'バナナ']
Fruits.append('orange') # リストの最後に「orange」を追加します
Fruits.insert(1, 'kiwi') # インデックス 1 に 'kiwi' を挿入します

リストから要素を削除するには、remove() などのメソッドを使用して特定の値を削除するか、pop() を使用して特定のインデックスの要素を削除してその値を取得します。 例えば:

Fruits.remove('banana') # 要素「banana」を削除します
Removed_fruit = Fruits.pop(0) # インデックス 0 の要素を削除して取得します

リストは変更可能でもあります。つまり、対応するインデックスに新しい値を割り当てることで、特定の位置の値を更新できます。 例えば:

果物 = ['リンゴ'、'バナナ'、'オレンジ']
Fruits[1] = 'kiwi' # インデックス 1 の値を 'kiwi' に更新します
この場合、リストの XNUMX 番目の要素は「kiwi」に変更されます。

リスト内の要素の順序を変更するには、リスト内の要素の順序を逆にする reverse() メソッド、または要素を昇順に並べ替える sort() メソッドを使用します。 例えば:

数値 = [3、1、4、2]
numbers.reverse() # 要素の順序を逆にします
sorted_numbers =sorted(numbers) # 要素を昇順に並べ替えた新しいリストを返します

reverse() を適用すると、リスト番号の要素は逆の順序になります。 sorted() 関数は、元のリストを変更せずに、要素がソートされた新しいリストを返します。

一般的なリストの操作とメソッド

リストの長さ (つまり、リストに含まれる要素の数) を調べるには、len() 関数を使用できます。 例えば:

果物 = ['リンゴ'、'バナナ'、'オレンジ']
list_length = len(fruits) # リストの長さを返します

この場合、果物リストには 3 つの要素があるため、list_length には値 XNUMX が割り当てられます。

+ 演算子を使用してリストを連結することもできます。これにより、XNUMX つ以上のリストが XNUMX つのリストに結合されます。 * 演算子を使用してリストを複製し、要素が繰り返される新しいリストを作成することもできます。 以下に例を示します。

リスト1 = [1, 2, 3]
リスト2 = [4, 5, 6]
concatenated_list = list1 + list2 # list1 と list2 を連結します
replicated_list = list1 * 3 # list1 を XNUMX 回繰り返した新しいリストを作成します

特定の要素がリストに存在するかどうかを確認するには、 in キーワードを使用できます。 ブール値、要素が存在する場合は True、存在しない場合は False を返します。 例えば:

果物 = ['リンゴ'、'バナナ'、'オレンジ']
is_banana_present = 果物の中の「バナナ」 # リストに「バナナ」があるかどうかを確認します

この例では、果物リストに「バナナ」が存在するため、is_banana_present に True が割り当てられます。

Index() などのメソッドを使用してリスト内の特定の要素のインデックスを検索したり、 count() を使用してリスト内の要素の出現数をカウントしたりできます。 以下に例を示します。

果物 = ['リンゴ'、'バナナ'、'オレンジ'、'バナナ']
Banana_index = Fruit.index('banana') # 最初に出現した 'banana' のインデックスを返します
Banana_count = Fruit.count('banana') # 'banana' の出現数を返します。

この場合、banana_index には値 1 (最初の「バナナ」要素のインデックス) が割り当てられ、banana_count には値 2 (果物リストに「バナナ」が表示される回数) が割り当てられます。

リストの理解

リスト内包表記は、既存のリストまたはその他の反復可能なオブジェクトに基づいて新しいリストを作成するための簡潔かつ強力な方法を提供します。 これらを使用すると、ループ、フィルタリング、変換操作を XNUMX 行のコードに組み合わせることができます。 リスト内包表記は、そのコンパクトな構文と読みやすさによって特徴付けられます。

リスト内包表記を使用すると、式と既存の反復可能オブジェクトに対する反復を指定して、新しいリストを作成できます。 一般的な構造は次のとおりです。

new_list = [反復可能な項目の式]

たとえば、1 から 5 までの数値の XNUMX 乗を含む新しいリストを作成するには、次のようにします。

squares = [範囲(2, 1)のxに対してx**6]

この場合、式 x**2 は、反復可能な range(1, 6) 内の各項目 (x) の 1 乗を表し、リスト [4, 9, 16, 25, XNUMX] になります。

リスト内包表記には、特定の基準に基づいて要素をフィルターしたり、変換を実行したりするための条件ステートメントを含めることもできます。 以下に例を示します。

果物 = ['リンゴ'、'バナナ'、'オレンジ'、'キウイ']
filtered_fruits = [len(fruit) > 5 の場合、フルーツ内のフルーツの場合は fruit.upper()]

この場合、リスト内包表記は条件ステートメント if len(fruit) > 5 を使用して、長さに基づいてフルーツをフィルター処理します。また、upper() メソッドを使用して、選択されたフルーツを大文字に変換します。 結果の filtered_fruits リストには ['BANANA', 'ORANGE'] が含まれます。

リストの反復処理

リストを反復処理する一般的な方法の XNUMX つは、for ループを使用することです。 リスト内の各要素をループして、それらの要素に対して操作を実行できます。 以下に例を示します。

Fruits = ['apple', 'banana', 'orange'] 果物の果物の場合: print(fruit)

この場合、for ループはフルーツ リストの各要素を反復処理して出力します。 出力は次のようになります。

リンゴ
banana
オレンジ

リスト内の各要素のインデックスと値の両方にアクセスする必要がある場合は、enumerate() 関数を使用できます。 インデックスと値のペアを提供する反復可能オブジェクトを返します。 以下に例を示します。

Fruits = ['apple', 'banana', 'orange'] インデックス用、enumerate(fruits) のフルーツ: print(index, Fruit)

この例では、index は要素のインデックスを表し、fruit は対応する値を表します。 出力は次のようになります。

0 リンゴ 1 バナナ 2 オレンジ

場合によっては、リストの各要素に特定の関数を適用して結果を収集したい場合があります。 この目的には、map() 関数が役立ちます。 指定された関数を反復可能オブジェクトの各要素に適用し、変換された値を生成する反復子を返します。 以下に例を示します。

数値 = [1, 2, 3, 4, 5] squared_numbers = list(map(ラムダ x: x**2, 数値))

この場合、map() 関数はラムダ関数 lambda x: x**2 を数値リストの各要素に適用します。 結果は、二乗値 [1、4、9、16、25] を含む新しいリスト squared_numbers です。

リスト操作テクニック

リスト内の要素の順序を逆にするには、 reverse() メソッドを使用できます。 元のリストをその場で変更し、要素を逆にします。 以下に例を示します。

フルーツ = ['リンゴ', 'バナナ', 'オレンジ'] Fruits.reverse() print(フルーツ)

出力は次のようになります。

[「オレンジ」、「バナナ」、「リンゴ」]

リストを昇順または降順に並べ替えるには、sort() メソッドを使用できます。 デフォルトでは、リストを昇順に並べ替えます。 以下に例を示します。

数値 = [5, 2, 1, 4, 3] 数値.sort() print(数値)

出力は次のようになります。

[1、2、3、4、5]

リストを降順に並べ替えるには、sort() メソッドに reverse=True 引数を渡すことができます。 以下に例を示します。

数値 = [5、2、1、4、3]
数値.sort(reverse=True)
印刷(数字)

出力は次のようになります。

[5、4、3、2、1]

重複した要素を含むリストがあり、それらを削除したい場合は、 set() 関数を使用してリストをセットに変換できます。これにより、その固有のプロパティにより重複が自動的に削除されます。 その後、セットをリストに変換し直すことができます。 以下に例を示します。

果物 = ['リンゴ'、'バナナ'、'オレンジ'、'バナナ'、'キウイ']
unique_fruits = リスト(セット(フルーツ))
プリント(ユニークなフルーツ)

出力は次のようになります。

[「キウイ」、「バナナ」、「オレンジ」、「リンゴ」]
入れ子になったリスト

ネストされたリストは、他のリストを要素として含むリストです。 これにより、階層構造が作成され、各内部リストが外部リスト内のサブリストを表します。 Python では、リスト内にリストを任意のレベルのネストに含めることができます。 ネストされたリスト構造の例を次に示します。

行列 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

この場合、行列は XNUMX つの内部リストを持つネストされたリストで、それぞれが行列内の行を表します。

ネストされたリスト内の要素にアクセスするには、複数のインデックスを使用できます。 外部インデックスは外部リスト内の内部リストの位置を参照し、内部インデックスは内部リスト内の要素の位置を参照します。 以下に例を示します。

行列 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 要素 = 行列[1][2] print(要素)

出力は 6 になります。これは、行列のインデックス [1][2] の要素です。

インデックスを使用して新しい値を割り当てることにより、入れ子になったリスト内の要素を操作することもできます。 以下に例を示します。

行列 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 行列[0][1] = 10 print(行列)

出力は [[1, 10, 3], [4, 5, 6], [7, 8, 9]] となり、インデックス [0][1] の要素は 10 に変更されます。

さらに、ネストされたループを使用して、ネストされたリストの要素を反復処理できます。 ネストされた for ループを使用する例を次に示します。

行列 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 行列の行の場合: 行の要素の場合: print(element)

これにより、行列内の各要素が別の行に印刷されます。

高度なリストテクニック

リスト スライスを使用すると、開始インデックスと終了インデックスを指定して、リストから要素のサブセットを抽出できます。 これはコロン (:) 演算子を使用して行われます。 負のインデックスを使用して、リストの最後から要素を参照することもできます。 以下にいくつかの例を示します。

数字 = [1、2、3、4、5、6、7、8、9]
# インデックス 2 から 5 までのサブリストを抽出します (排他的)
sublist = 数値[2:5] # [3, 4, 5] を返します
# 先頭からインデックス 4 までの要素を抽出します (排他的)
部分リスト = 数値[:4] # [1, 2, 3, 4] を返します
# インデックス -3 からリストの最後までの要素を抽出します
end_list = 数値[-3:] # [7, 8, 9] を返します

リスト スライスは、リスト内の要素のサブセットを操作する柔軟な方法を提供します。

リスト内包表記には条件ステートメントを含めることができ、特定の基準に基づいて要素をフィルター処理できます。 条件文は、if キーワードを使用して内包表記に追加されます。 以下に例を示します。

数字 = [1、2、3、4、5、6、7、8、9]
# 偶数のみを含む新しいリストを作成する
Even_numbers = [num % 2 == 0 の場合、数値の num に対する num]

この場合、リスト内包表記により数値リストがフィルター処理され、剰余を含まず 2 で割り切れる要素 (num) のみが含まれます。 結果の偶数リストには [2, 4, 6, 8] が含まれます。

zip() 関数を使用すると、複数のリストを XNUMX つの反復可能オブジェクトに結合できます。各要素は、入力リストの対応する要素を含むタプルになります。 以下に例を示します。

名前 = ['アリス', 'ボブ', 'チャーリー']
年齢 = [25、30、35]
# 名前と年齢をタプルのリストに結合します
結合 = list(zip(名前, 年齢))

この場合、結合されたリストには [('Alice', 25), ('Bob', 30), ('Charlie', 35)] が含まれます。各タプルは、名前と年齢のリストの対応する要素のペアを表します。

実際の例と応用例

  • データ処理: リストは、データ分析などのタスクでデータを保存および処理するために使用されます。
  • 並べ替えアルゴリズム: リストは、要素を配置するための並べ替えアルゴリズムの基本です。
  • タスク管理: リストは、タスクや To Do アイテムの追跡と管理に役立ちます。
  • 最大値または最小値の検索: リストを反復して最大値または最小値を検索します。
  • 出現数のカウント: リストを使用して、特定の要素の出現数をカウントします。
  • 文字列の反転: 文字列をリストとして扱い、順序を反転します。
  • 共通要素の検索: XNUMX つのリスト間の共通要素を特定します。

リストは多用途であり、さまざまなプログラミングの問題や実際のシナリオを解決する上で重要な役割を果たします。

一言で言えば

Python リストは、要素のコレクションを保存および操作できる多用途かつ基本的なデータ構造であると結論付けることができます。 リストには任意のデータ型を含めることができ、要素の追加、削除、アクセスなどのさまざまな操作をサポートします。 これらは、データ処理、並べ替えアルゴリズム、タスク管理の実用的なシナリオで使用できます。 リストは、最大値または最小値の検索、出現回数のカウント、文字列の反転、共通要素の特定などのタスクを可能にし、プログラミングの問題を解決するのにも役立ちます。 Python リストは、データのコレクションを操作する際の柔軟性と効率性を提供し、Python プログラミングの基本ツールになります。

スポット画像

最新のインテリジェンス

スポット画像