common python list methods with syntax
チュートリアルでは、リストに追加、リストの並べ替え、ポップ、追加、コピー、削除、リバースなどの一般的なPythonリストメソッドの構文と使用法について説明しています。
Pythonリストは、データの保存に使用されるだけではありません。正しく使用すれば、強力なデータ構造があります。ただし、その方法がわからないと効果的に使用できません。
Pythonにはリストを操作できる組み込み関数がいくつかありますが、Pythonリストには、リストオブジェクトをインプレースとアウトオブプレースの両方で操作するために使用できるメソッドがあります。
=> ここですべてのPythonチュートリアルを確認してください
学習内容:
一般的なPythonリストメソッド
一般的なリストメソッドについて詳しく説明する前に、Pythonリストのいくつかの特徴を理解することが重要です。
- Pythonリストは、ゼロから無限(コンピューターが許可できる限り)のデータ型のコレクションです( 数字 、 文字列 、 ブール値 、 タプル 、 リスト 、など)各項目をコンマ(、)で区切った角括弧で囲みます。
- Pythonリストは 順序付けられました 、 可変 シーケンスと使用 ゼロベースの番号付け システム、つまり、そのすべてのアイテムは、0から始まりn-1で終わるインデックス番号によって一意に識別されます。nはリストの長さです。
そのことを念頭に置いて、Pythonのリストメソッドを自信を持って調べることができます。 Pythonリストには多くのものがあることを知っておくことが重要です メソッド Pythonには、さまざまな目的でリストデータを処理するための多くの組み込みメソッドがあります。
注意 :今後、このチュートリアルのすべての例は、特に明記されていない限り、Pythonシェルから直接実行されます。
加算方法
リストに対して操作を実行する前に、まずリストにデータを追加することをお勧めします。 Pythonリストには、リストにアイテムを追加するための次の一般的な方法があります。
#1)list.append(x)
ザ・ 追加 ()メソッドは、アイテムを引数として受け取り、リストの最後に追加します。
上記のように、Pythonリストは順序付けられています。したがって、リスト内の各アイテムの位置は重要です。リストにアイテムを追加していて、それをそのリストの最後のアイテムにしたい場合は、append()が必要です。
例1 :以下のコードでは、リストには 名前 (文字列)最初の項目として 年齢 (番号)2番目の項目として。 3つ目のアイテムを追加したい 給料 (番号)私たちが持っているようなリストに
list(name, age, salary)以下は、Pythonシェルのウォークスルーです。
>>> name = 'Enow Kevin' # define a name >>> age = 30 # define an age >>> details = (name, age) # create a list with name and age >>> details ('Enow Kevin', 30) >>> salary = 165000 # define a salary >>> details.append(salary) # add the salary to the end of the list >>> details ('Enow Kevin', 30, 165000) >>> list.append(x ) と類似しています に (len( に ):) = (x)。
以下の例を検討してください。
4番目のアイテムを追加しましょう 性別 (文字列)上記で定義した詳細リストへ。
>>> gender = 'Male' # define a gender >>> details(len(details):) = (gender) # add gender to the end of the list >>> details ('Enow Kevin', 30, 165000, 'Male') >>> 注意 :上記の例では、 len ()は、リストを操作できるPython組み込み関数です。
#2)list.extend(iterable)
拡張する (反復可能) 反復可能 引数として、その反復可能な各項目をリストに追加します。
この方法は append( ) フードの下。この方法は、各アイテムを別のリストに追加したいアイテムのコレクションがある場合に最適です。
例2 :2人の学生の成績があるとしましょう gradeScience そして gradeArt そして、グレードに対して一般的な操作を実行することにしました。 1つの方法は、最初にそれらを結合することです。
以下に、Pythonシェルのウォークスルーを示します。
>>> gradeScience = (4,3,9,10) # grades in science >>> gradeArt = (9,11,7,5) # grades in art >>> gradeArt (9, 11, 7, 5) >>> gradeArt.extend(gradeScience) # join grades >>> gradeArt # we can now perform the operation on the joined grades (9, 11, 7, 5, 4, 3, 9, 10) 同じことが「 append() で ループ' 。を考えると 拡張する ()メソッドはイテラブルを取り込んで、そのイテラブル内の各アイテムをリストに追加します。 forループ それがどのように機能するかを示すために。
def extend_loop(extender, extended): '''for each item in the extender list, append the item into the extended list''' for item in extender: extended.append(item) if __name__ == '__main__': gradeScience = (4,3,9,10) # grades in science gradeArt = (9,11,7,5) # grades in art print('gradeArt: {} before extended'.format(gradeArt)) # join gradeScience and gradeArt into gradeArt extend_loop(gradeScience, gradeArt) print('gradeArt: {} after extended'.format(gradeArt)) 出力

の違いを知ることは重要です append(x )および 拡張(反復可能) 。
Pythonリストメソッドの違い:appendとiterable。
| # | append(x) | 拡張(反復可能) |
|---|---|---|
| 1 | 1つの引数を取り、反復可能である可能性があります | 1つの引数を取り、反復可能である必要があります |
| 二 | リストにアイテムを追加します | iterableの各項目をリストに追加します。 |
例3 :追加と拡張の違いを明確に理解するために、この例を考えてみましょう。両方に気づきました listApp そして listExt 引数としてiterableを取りますが、変更されるのは出力です。
>>> listApp = () # empty list >>> listExt = () # empty list >>> listApp.append((1,2,3)) # append an iterable >>> listExt.extend((1,2,3)) # extend an iterable >>> listApp # check output ((1, 2, 3)) >>> listExt # check output (1, 2, 3) Pythonメソッド append() 反復可能を取り、それをアイテムと見なし、Pythonメソッドの間にリストの最後に追加しました extend() iterableを取得し、そのiterableの各アイテムをリストに追加しました。
#3)list.insert(i、x)
Pythonリストメソッド インサート ()は2つの引数(position、item)を取り、リスト内の指定された位置にアイテムを挿入します。
メソッド インサート ()は、アイテムをリストに追加し、アイテムをリストに追加する場所を正確に制御する場合に役立ちます。とは異なり append() そして extend() リストの最後にアイテムを追加します。 インサート ()を使用すると、任意の位置にアイテムを追加できます。
例4 :優れた順に名前のリストがあり、後で名前を省略したことがわかり、その名前が指定された名前の前にリストに追加されることになっているとします。この場合、両方 append() そして extend() 特定の位置にアイテムを追加したいので、役に立ちません。
解決策は、新しい名前を追加して使用する前に、名前のインデックス位置を取得することです。 インサート() その位置に追加します。
>>> names = ('kevin','john','petter','tony','luke','andrew')# list of names >>> new_name = 'enow' # new name to be insert into the list of names >>> given_name = 'tony' # name before which to insert our new name >>> idx_given_name = names.index(given_name) # get index of given name >>> idx_given_name 3 >>> names.insert(idx_given_name, new_name) # insert new name >>> names ('kevin', 'john', 'petter', 'enow', 'tony', 'luke', 'andrew') 注意: 上記の例では、Pythonリストメソッドを使用しました インデックス ()リストからアイテムのインデックス位置を取得するには() これについては後で詳しく説明します )。
の概念 インサート (インデックス、x)を理解することは非常に重要です。最初の引数は インデックス位置 挿入する前の要素の。
つまり、 リスト .insert(0、x)は、インデックス0のアイテムの前にxを挿入し、 リスト 。 インサート (のみ( リスト )、 バツ )は、リストの最後(list.append(x)と同様)のインデックスの位置の前にxを挿入します len (リスト)(このインデックスはどのリストにも存在しません)
減算の方法
Pythonでは、リストにアイテムを追加できる限り、Pythonリストではリストからアイテムを削除または削除することもできます。
#1)list.pop((i))
ザ・ ポップ () メソッドは、リストからアイテムを削除して返します。このメソッドは、オプションのインデックス値を引数として取ることができます(リストではなく「オプション」を示すメソッドのシグネチャのiを囲む角括弧で表されます)。これは、アイテムを削除するインデックスの位置を示します。
何も指定されていない場合、デフォルトで-1になります。つまり、リストの最後の項目が削除されて返されます。
例5 :以下の車のリストを考えると、このリストから任意のインデックス位置でアイテムを削除することができます。 ポップ ()
>>> cars = ('Toyota','Audi','BMW','Bugatti','Bently','Aston Martin') #cars >>> cars ('Toyota', 'Audi', 'BMW', 'Bugatti', 'Bently', 'Aston Martin') >>> toyota = cars.pop(0) # remove and return car at index 0 >>> cars ('Audi', 'BMW', 'Bugatti', 'Bently', 'Aston Martin') >>> toyota 'Toyota' >>> bugatti = cars.pop(2) # remove and return car at index 2 >>> cars ('Audi', 'BMW', 'Bently', 'Aston Martin') >>> bugatti 'Bugatti' >>> aston_martin = cars.pop() # remove and return the last car in the list(at index -1) >>> cars ('Audi', 'BMW', 'Bently') >>> aston_martin 'Aston Martin' #2)list.remove(x)
Pythonリストメソッド remove(x) xに等しいアイテムの最初の出現を削除します。
メソッド 削除する() リストからアイテムを削除したいが、アイテムを気にせず、リストのどこに正確に配置されているかわからない場合に便利です。
例6 :書籍のリストがありますが、不要になったため、特定の書籍を名前でリストから削除します。
>>> books = ('python for beginners','python in a nutshell','python in action') # list of books >>> books ('python for beginners', 'python in a nutshell', 'python in action') >>> book_to_remove = 'python in a nutshell' # book to be removed >>> books.remove(book_to_remove) # remove book >>> books ('python for beginners', 'python in action') 注意: アイテムが与えられた場合 削除する() 引数として、しかしそれはリストに存在しません、 ValueError 上げられます。したがって、このメソッドは常に内部で呼び出す必要があります 試してみてください 例外を処理します。
メソッド間のいくつかの違いを見ることができます ポップ () そして 削除する() 以下に示すように:
| # | ポップ () | 削除する() |
|---|---|---|
| 1 | オプションの引数を受け入れ、削除するアイテムのインデックス位置である必要があります。インデックスが範囲外の場合、IndexErrorが発生します | 引数を受け入れ、削除するアイテムである必要があります。アイテムがリストにない場合、ValueErrorが発生します |
| 二 | リストからアイテムを削除して返します。 | リストからアイテムを削除しますが、返しません。 |
#3)list.clear()
Pythonリストメソッド 晴れ ()はリストからすべてのアイテムを削除し、それによってリストを空にします。引数は取りません。
このメソッドは、リストオブジェクトに新しい値を再割り当てする場合に役立ちます。
例7 :名前のコレクションを保持するリストがありますが、名前を新しい名前に置き換えたいと思います。この場合、最初にリストオブジェクトを空にして以前の名前をクリアし、次に上記で見た追加のために異なるPythonリストメソッドの1つを使用して新しい名前を追加します。
>>> names = ('enow','kevin','eyong') # our collection of names >>> names.clear() # clear the list object >>> names () >>> names.extend(('ayamba','derrick','fred')) # add new names with the extend() method >>> names ('ayamba', 'derrick', 'fred') 注意 :私たちは同じことを達成することができます の リスト(:)。
多くの人が、使用する代わりにそれを言うかもしれません 晴れ ()、このような空のリストでリストを再割り当てしてみませんか
>>> a = (4,5,3) # list object containing numbers >>> a= () # re-assign to an empty list >>> a () これを行う際の問題はここにあります。 2つの変数がある場合( に そして b )リストオブジェクト((4,5,3))を参照し、いずれかの変数でclear()を呼び出します(たとえば、 に )は、その参照リストオブジェクトからアイテムを削除します。
ただし、いずれかの変数を再割り当てした場合(たとえば に )空のリストで、次に再割り当てされたリスト( に )は、と同じリストオブジェクトを参照しなくなります b 。
>>> a = (4,5,3) # define a list object with numbers >>> b = a # assign 'a' to a new variable 'b' >>> b (4, 5, 3) >>> a = () # re-assign 'a' to an empty list. This changes its referenced object >>> a () >>> b # 'b' doesn't change because it doesn't reference the same list object as 'a' (4, 5, 3) 分析方法
ほとんどの場合、リストオブジェクト内のアイテムを知り、理解したいと考えています。 Pythonリストには、その項目を理解するために使用できるいくつかのメソッドがあります。
#1)list.index (x (、start (、end)))
Pythonリストメソッド インデックス (x)は、値がxに等しい最初のアイテムのリスト内のゼロベースのインデックスを返します。 1つの必須引数と2つのオプション引数を取ります。最初の引数(x)は、インデックスを検索するアイテムを表します。
Webアプリケーションテストの面接の質問と回答
最後の2つの引数(start、 終わり )検索の開始および終了(排他的)インデックスを決定します。同等の方法であるJavaScriptのような他のプログラミング言語とは異なり の指標 ()そのような項目がない場合は-1を返します。Pythonリストメソッド インデックス ()は代わりにValueErrorを発生させます。
例8 :参照 例4 使用した場所 インデックス ()名前のリスト内の名前のインデックス位置を取得します。この例8では、オプションの引数を使用して、検索をリストの特定のサブシーケンスに制限する方法を説明します。
>>> fruits = ('Apples','Avocados','Eggfruit','Apples','Cantaloupe','Cucumbers') # list of fruits >>> fruits.index('Apples',1,3) # find index of 'Apples' from index 1 to index 3(exclusive) Traceback (most recent call last): File '', line 1, in ValueError: 'Apples' is not in list >>> fruits.index('Apples',1,4) # find index of 'Apples' from index 1 to index 4(exclusive) 3 >>> fruits.index('Cucumbers',3) # find index of 'Cucumbers' from index 3 to end of list. 5 #2)list.count(x)
Pythonリストメソッド カウント (x)は、特定のアイテムxがリストに表示される回数を決定するために使用されます。
とは異なり sets() 、Pythonリストは重複アイテムを保持できます。これらの重複について知り、アイテムが重複する回数を判断することに関心がある場合は、 カウント ()は行く方法です。
例9 :投票に基づいて上院議員の名前を保持するリストオブジェクトがあるとします。上院が投票されるほど、その名前がリストオブジェクトに表示されます。ここで、特定の上院の投票数を調べたいと思います。
>>> senate_votes = ('Tammy','John','Tammy','Tammy','Thomas','Maria','Maria') # list of senate names based on their votes >>> senate_votes ('Tammy', 'John', 'Tammy', 'Tammy', 'Thomas', 'Maria', 'Maria') >>> tammy_votes = senate_votes.count('Tammy') # get tammy's vote count >>> tammy_votes 3 >>> thomas_votes = senate_votes.count('Thomas') # get thomas's vote count >>> thomas_votes 1 >>> mike_votes = senate_votes.count('Mike') # get mike's vote count >>> mike_votes 0 注意 :Pythonリストメソッド カウント ()は、アイテムがリストに表示されない場合、zero(0)を返します。
#3)list.sort(key = None、reverse = False)
Pythonリストメソッド ソート ()リストデータを適切に並べ替えます。 2つのキーワード引数を取ります。
- キー( デフォルトはNoneです ) :リストから項目を抽出するために使用される1つの引数の関数を指定し、比較のためにそれらを準備します。 例えば、 正の数のリストがあるが、sort関数でそれらの負の値をソートしたい場合は、このキーを使用してこれを実現できます。
- 逆行する( デフォルトはFalseです ) :ブール値であり、Trueに設定すると、降順で並べ替えられます。その値はデフォルトでFalseであるため、昇順でソートされます。
例10 :番号のリストがあり、そのリストの最大の番号を知りたいです。
>>> numbers = (4,34,6,1,0, 9,33,82,2) # list of numbers >>> numbers (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_numb = numbers.copy() # make a copy to work with >>> sort_numb.sort(reverse=True) # sort in descending order >>> sort_numb (82, 34, 33, 9, 6, 4, 2, 1, 0) >>> sort_numb(0) # get the first item which is the largest number 82 注意: Pythonリストメソッドを使用しました コピー ()リストの浅いコピーを作成する() これについては後で詳しく説明します)。
例11: キーの使用法を示すために、リスト内のアイテムの負の値を並べ替えてみましょう。
>>> numbers # list of num (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_neg_numb = numbers.copy() # make a copy to work with >>> sort_neg_numb (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_neg_numb.sort(key=lambda x: -x, reverse=True) # sort in descending order the negative value of each item. >>> sort_neg_numb (0, 1, 2, 4, 6, 9, 33, 34, 82) >>> 上記の出力から、降順で並べ替えたものの、出力は昇順であることがわかります。これは、ラムダ関数が基本的に、リスト内の各アイテムの負の値で比較が行われるようにしたためです。
注意 :キーは1つの引数の関数を指定するため、 ラムダ式 匿名関数を定義します。リスト内の各項目の負の値を返すだけです。
その他の方法
このセクションでは、上記のどのカテゴリにも当てはまらない可能性のあるPythonリストメソッドをいくつか見ていきます。
#1)list.copy()
Pythonメソッド コピー ()は 浅い リストのコピー。浅いということは、リストの最初のレベルのみのコピーを作成することを意味します( これについては後で詳しく説明します )。
このメソッドは、リストを変更する前に元のリスト値を保持するのに役立ちます。私たちが見たように 例7 上記では、リストオブジェクトを参照する変数を別の変数に割り当てるだけでは、新しいオブジェクトは作成されません。むしろ、2つの変数は同じオブジェクトを参照します。
したがって、一方を変更すると、もう一方も変更されます。
例12 :参考例 10 そして 十一 この方法がどのように使用されたかを確認します。
注意 :同じことが達成できることを知ることは興味深いです スライス (( に (:))
例13 :の意味をよりよく理解するために 浅い の説明で コピー ()、以下の例を検討してください。
>>> list1 = (1,2,3) # object list 1 >>> list2 = (0,list1) # object list 2 containing reference to list 1 >>> list2 (0, (1, 2, 3)) >>> list2_copy = list2.copy() # make a shallow copy of list 2 >>> list2_copy (0, (1, 2, 3)) >>> list2(0) = -1 # modify list 2's first level item >>> list2 (-1, (1, 2, 3)) >>> list2_copy # list 2's copy doesn't change (0, (1, 2, 3)) >>> list1(0) = 'a' # modify list 1 >>> list1 ('a', 2, 3) >>> list2 # list 2 changes since it has reference to list 1 (-1, ('a', 2, 3)) >>> list2_copy # list 2's copy changes because the nested list ‘list 1’ wasn't copied. (0, ('a', 2, 3)) >>> 上記の例は、浅いコピーとは、リスト内のネストされた反復可能オブジェクトがコピーされないことを意味します。
#2)list.reverse()
Pythonリストメソッド 逆行する ()は、リストの項目を元に戻します。議論はありません。
この方法は、並べ替え後に順序を昇順または降順に変更する場合に役立ちます。
例14 :リストを昇順で並べ替えました。後で、並べ替えられたリストの降順を取得します。 Pythonリストメソッドを使用することもできます ソート ()とセット 逆行する Trueに、または使用できます 逆行する ()以下に示すリストメソッド。
>>> numbs = (3,4,1,8,0,44,5) # our list of disordered numbers >>> numbs (3, 4, 1, 8, 0, 44, 5) >>> numbs.sort() # sort, in ascending by default >>> numbs (0, 1, 3, 4, 5, 8, 44) >>> numbs.reverse() # reverse to arrange in descending order >>> numbs (44, 8, 5, 4, 3, 1, 0) >>> よくある質問
Q#1)Pythonでリストから何かを削除するにはどうすればよいですか?
回答: PythonのlistメソッドとPythonの組み込み関数delを使用して、いくつかの方法でリストからアイテムを削除できます。
- を使用して削除 list.remove(x) :これにより、アイテムxがリストから削除されます。
>>> a = (4, 3, 6, 1) # our list of numbers >>> a (4, 3, 6, 1) >>> a.remove(3) # remove item '3' from the list >>> a (4, 6, 1) >>> - を使用して削除 list.pop((i)) :これは、リスト内の任意の位置にあるアイテムを削除して返すために使用されます。インデックス位置が指定されていない場合は、リストの最後にあるアイテムが削除されます。
>>> a = (4, 3, 6, 1) # our list of numbers >>> a.pop() # remove the last item in the list 1 >>> a (4, 3, 6) >>> a.pop(1) # remove the item at index position 1 3 >>> a (4, 6) >>> - を使用して削除 list.clear() :これにより、リスト内のすべてのアイテムが削除されます。
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> a.clear() # delete all items >>> a () - を使用して削除 の :Pythonの組み込み関数delを使用して、リストからアイテムを削除できます。
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> del a(0) # delete item at index 0 >>> a (3, 6, 1) >>> del a(1) # delete item at index 1 >>> a (3, 1) >>> del a(:) # delete all items. Same as clear() >>> a () >>> Q#2)Pythonでリストをどのようにソートしますか?
回答: Pythonでリストを並べ替えるには、Pythonリストメソッドを使用できます ソート ()。このメソッドは、リストを所定の場所に並べ替え、2つのキーワード引数keyとを取ります。 逆行する 。
ザ・ 逆行する キーワードは、昇順または降順で並べ替えるように設定できます。または、Pythonの組み込み関数を使用することもできます ソート済み ()。ただし、これは適切に分類されません。
Q#3)Pythonのリストに複数のアイテムを追加できますか?
回答: Pythonリストメソッドappend()を使用して、リストに複数のアイテムを追加できます。 ループ 、ここで反復可能ファイルをループし、各項目をリストに追加します。
def append_loop(): list1 = (0,1,2,3) # list 1 list2 = (4,5,6,7) # list 2 # iterate through ‘list 2’ using ‘for loop’, and append each item to list1 for item in list2: list1.append(item) print('Concatenated list is {}'.format(list1)) if __name__ == '__main__': append_loop() 出力

Pythonリストメソッドを使用して複数のアイテムを追加することもできます 拡張する ()。 「 追加 ()で forループ 上で見たように」。
>>> list1 = (0,1,2,3) # list 1 >>> list2 = (4,5,6,7) # list 2 >>> list1.extend(list2) # append each item in list2 into list1 >>> list1 (0, 1, 2, 3, 4, 5, 6, 7) >>> または、+演算子を使用して連結することもできます。ただし、これは機能しません 所定の位置に 。つまり、元のリストは変更されないまま、連結されたリストが返されます。
>>> list1 = (0,1,2,3) # list 1 >>> list2 = (4,5,6,7) # list 2 >>> list3 = list1 + list2 # concatenate using the + operator >>> list3 (0, 1, 2, 3, 4, 5, 6, 7) >>> 結論
このチュートリアルでは、次のような一般的なPythonリストメソッドについて説明しました。 追加、拡張、挿入、ポップ、削除、クリア、インデックス作成、カウント、コピー、 そして 逆行する 。
また、さまざまな状況でこれらの方法を適用する方法のいくつかの例を見ました。
=> すべてのPythonトレーニングシリーズを見るには、こちらにアクセスしてください