前書き
Python 3には、リストを含む多数の組み込みデータ構造があります。 データ構造はデータを整理および保存する方法を提供し、組み込みのメソッドを使用してそのデータを取得または操作できます。
このチュートリアルを最大限に活用するには、リストのデータ型、構文、およびインデックスの作成方法についてある程度の知識が必要です。 チュートリアルUnderstanding Lists in Python 3を読むと、リストを確認できます。
ここでは、リストを操作するために使用できる組み込みメソッドについて説明します。 リストにアイテムを追加したり、リストからアイテムを削除したり、リストを拡張したり、リストを逆に並べ替えたりします。
リストは変更可能な(または変更可能な)データ型であることに留意することが重要です。 不変であるstringsとは異なり、リストでメソッドを使用すると、リストのコピーではなく、リスト自体に影響します。
このチュートリアルでは、主に市営水族館で魚を追加または削除するときに変更する必要のあるさまざまな魚の目録で構成されるリストを使用します。
list.append()
メソッドlist.append(x)
は、リストの最後に項目(x
)を追加します。 水族館全体に分散している魚のリストから始めます。
fish = ['barracuda','cod','devil ray','eel']
このリストは4つの文字列項目で構成され、それらのインデックス番号の範囲は0の'barracuda'
からインデックス3の'eel'
です。
今日、新しい魚を水槽に入れました。その魚をリストに追加したいと思います。 新しい魚の種類の文字列'flounder'
をlist.append()
メソッドに渡し、変更したリストを印刷して、アイテムが追加されたことを確認します。
fish.append('flounder')
print(fish)
Output['barracuda', 'cod', 'devil ray', 'eel', 'flounder']
これで、.append()
関数に渡した項目で終わる5つの文字列項目のリストができました。
list.insert()
list.insert(i,x)
メソッドは2つの引数を取ります。i
はアイテムを追加するインデックス位置であり、x
はアイテム自体です。
私たちの水族館は別の新しい魚、カタクチイワシを獲得しました。 これまでのところ、リストfish
がアルファベット順になっていることに気付いたかもしれません。 このため、list.append()
関数を使用して、文字列'anchovy'
をfish
の末尾に追加するだけでは不十分です。 代わりに、list.insert()
を使用して、このリストの先頭のインデックス位置0
に'anchovy'
を追加します。
fish.insert(0,'anchovy')
print(fish)
Output['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder']
この場合、リストの先頭に文字列アイテムを追加しました。 連続する各アイテムは、すべて下に移動したため、新しいインデックス番号になります。 したがって、'barracuda'
はインデックス1になり、'cod'
はインデックス2になり、'flounder'
(最後の項目)はインデックス5になります。
この時点で、水族館にスズメダイを持ち込み、上記のリストに基づいてアルファベット順を維持したい場合は、アイテムをインデックス3
:fish.insert(3,'damselfish')
に配置します。
list.extend()
複数のリストを組み合わせる場合は、list.extend(L)
メソッドを使用できます。このメソッドは、引数として2番目のリストを取ります。
私たちの水族館は、閉鎖中の別の水族館から4匹の新しい魚を歓迎しています。 これらの魚はリストmore_fish
に一緒にあります:
more_fish = ['goby','herring','ide','kissing gourami']
次に、リストmore_fish
のアイテムをリストfish
に追加し、リストを印刷して、2番目のリストが組み込まれていることを確認します。
fish.extend(more_fish)
print(fish)
Output['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide', 'kissing gourami']
この時点で、リストfish
は10個のアイテムで構成されています。
list.remove()
リストからアイテムを削除する必要がある場合は、list.remove(x)
メソッドを使用して、値がx
と等しいリストの最初のアイテムを削除します。
地元の研究科学者グループが水族館を訪れました。 彼らは魚のキスグーラミ種の研究を行っています。 彼らは私たちにキッシンググラミーを貸してくれるように要求したので、この変更を反映するためにリストから'kissing gourami'
アイテムを削除したいと思います。
fish.remove('kissing gourami')
print(fish)
Output['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide']
list.remove()
メソッドを使用すると、リストに'kissing gourami'
アイテムがなくなります。
リストに存在しないlist.remove()
のx
にアイテムを渡すと、次のエラーが発生します。
OutputValueError: list.remove(x): x not in list
list.remove()
は、渡されたアイテムの最初のインスタンスのみを削除することに注意してください。したがって、水族館に2つのキッシンググラミーがあり、科学者に1つだけ貸した場合、%の同じ構造を使用できます。 (t1)sそしてまだ私たちのリストに2番目のキスグラミーがあります。
list.pop()
list.pop([i])
メソッドを使用して、リストから指定されたインデックス位置にあるアイテムを返し、そのアイテムを削除できます。 インデックスのi
を囲む角かっこは、このパラメータがオプションであることを示しています。したがって、インデックスを指定しない場合(fish.pop()
のように)、最後のアイテムが返され、削除されます。
私たちのデビルレイは水族館には大きすぎます。ありがたいことに、いくつかの町にある水族館はレイのニーズに対応できます。 .pop()
を使用し、文字列アイテム'devil ray'
のインデックス番号(3
)を指定してリストからアイテムを削除し、それを返すことで、削除することを確認します。正しいアイテム。
print(fish.pop(3))
print(fish)
Outputdevil ray
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']
.pop()
メソッドを使用することにより、'devil ray'
をリストfish
に戻したり削除したりすることができました。
このメソッドにパラメーターを渡さずにfish.pop()
を実行すると、最後の項目'ide'
が返され、リストから削除されます。
list.index()
リストが長くなり始めると、特定の値がどのインデックス位置にあるかを判断するためにアイテムを数え上げるのが難しくなります。 list.index(x)
(x
はアイテム値と同等)を使用して、そのアイテムが配置されているリスト内のインデックスを返すことができます。 値がx
のアイテムが複数ある場合、このメソッドは最初のインデックスの場所を返します。
print(fish)
print(fish.index('herring'))
Output['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']
6
リストfish
はそれほど長くはありませんが、カウントせずにアイテム'herring'
のインデックス位置を特定することはできます。 リストを効果的に操作できるように、各アイテムのインデックスを知ることは非常に重要です。
.index()
で値を指定し、そのような値が指定されたリストに存在しない場合、エラーが発生します:ValueError: 'x' is not in list
。
list.copy()
リストを操作していて、元のリストを変更せずに複数の方法で操作したい場合は、list.copy()
を使用してリストのコピーを作成できます。
fish.copy()
から返された値を変数fish_2
に渡し、fish_2
の値を出力して、fish
と同じ項目のリストであることを確認します。 s。
fish_2 = fish.copy()
print(fish_2)
Output['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']
この時点で、fish
とfish_2
はどちらも同等のリストです。
list.reverse()
list.reverse()
メソッドを使用すると、リスト内のアイテムの順序を逆にすることができます。 おそらく、従来のアルファベット順ではなく逆アルファベット順を使用する方が便利です。 その場合、fish
リストで.reverse()
メソッドを使用して、リストを元の場所に戻す必要があります。
fish.reverse()
print(fish)
Output['ide', 'herring', 'goby', 'flounder', 'eel', 'cod', 'barracuda', 'anchovy']
.reverse()
メソッドを使用した後、リストはリストの最後にあるアイテム'ide'
で始まり、リストの最初にある'anchovy'
で終わります。
list.count()
list.count(x)
メソッドは、指定されたリスト内で値x
が発生する回数を返します。 多数の一致する値を持つ長いリストがある場合に、このメソッドを使用できます。 たとえば、より大きな水族館があり、持っているネオンテトラごとにアイテムがある場合、.count()
を使用して、任意の時点で持っているネオンテトラの総数を決定できます。
現在のリストを使用して、アイテム'goby'
が表示される回数をカウントします。
print(fish.count('goby'))
Output1
文字列'goby'
は1回しか表示されないため、.count()
メソッドを使用すると数値1が返されます。
また、整数リストでこのメソッドを使用します。 私たちの水族館は、すべての魚に細心の注意を払うことを約束しているため、各魚の年齢を追跡することで、年齢に応じて彼らの食事が魚のニーズを満たすようにしています。 この2番目のリストfish_ages
は、他のリストの魚の種類fish
に対応しています。
1歳魚には特別な食事の必要があるため、1歳魚の数を数えます。
fish_ages = [1,2,4,3,2,1,1,2]
print(fish_ages.count(1))
Output3
整数1
はリストfish_ages
に3回出現するため、.count()
メソッドを使用すると、数値3が返されます。
list.sort()
list.sort()
メソッドを使用して、リスト内のアイテムを並べ替えることができます。
list.count()
と同様に、list.sort()
は、特定の整数値がいくつあるかをより明確にすることができます。また、ソートされていない数値のリストを番号順に並べることもできます。
整数リストfish_ages
を使用して、.sort()
メソッドの動作を確認しましょう。
fish_ages.sort()
print(fish_ages)
Output[1, 1, 1, 2, 2, 2, 3, 4]
.sort()
とfish_ages
を使用すると、整数値が順番に返されます。 実際には、これらの年齢は特定の魚に対応しているため、ソートする前に元のリストのコピーを作成することをお勧めします。
list.clear()
リストが完成したら、list.clear()
メソッドを使用して、リストに含まれるすべての値を削除できます。
地方自治体は私たちの水族館を引き継ぐことを決定し、私たちの街の人々が楽しむための公共スペースにしました。 自分たちで水族館に取り組んでいないので、魚の在庫を保持する必要がなくなったので、fish
リストをクリアしましょう。
fish.clear()
print(fish)
Output[]
fish
で.clear()
関数を使用した後、出力として角括弧を受け取り、リストにすべての項目が含まれていないことを通知します。
結論
リストは、可変または変更可能な順序付けされた要素のシーケンスであるため、Pythonでは非常に柔軟なデータ構造です。 リストメソッドを使用すると、洗練された方法でリストを操作できます。 プログラムでリストを効果的に使用するためのあらゆるツールを使用するために、メソッドをother ways to modify listsと組み合わせることができます。 ここから、list comprehensionsについて読んで、既存のリストに基づいてリストを作成できます。