Pythonリストの知識点まとめ(詳細解説)

別のリスト = [4, 5, 6]

my_list.extend(別のリスト) print(my_list) # 出力:[1, 2, 3, 4, 5, 6]


リスト内の関数による削除




| 関数 | 説明 |
| --- | --- |
| pop(index = -1) | リスト内のindex位置の要素を削除(デフォルトindex = -1)し、その要素の値を返します。 |
| remove(obj) | リスト内で最初に現れるobj要素を削除します |
| clear() | リスト内のすべての要素を削除します |


要素の位置を検索:


index()関数:


リストから要素が最初に現れる位置を検索




index(obj, start = 0 , end = -1) obj:検索する要素 start:検索の開始位置を示します。 end:検索範囲の終了位置を示します(この位置は含まれません)。




list1 = [1,2,3,4,5] print(list1.index(3)) # 2


要素のソート


sort()とsorted()関数


**sorted()** 関数はすべての反復可能オブジェクトをソート操作します。



> 
> **sortとsortedの違い:**
> 
> 
> sortはリストに適用されるメソッドで、sortedはすべての反復可能オブジェクトにソート操作を適用できます。
> 
> 
> listのsortメソッドは既存のリストに対して操作を行い、戻り値はありませんが、組み込み関数sortedメソッドは新しいlistを返し、元のリストを直接操作しません。
> 
> 
> 


sort()メソッドの構文:



> 
> list.sort(cmp=None, key=None, reverse=False)
> 
> 
> 




cmp – オプションのパラメータ、指定された場合はそのメソッドを使用してソートします。

key – 主に比較に使用される要素で、パラメータは反復可能オブジェクトから取得され、反復可能オブジェクト内の特定の要素を指定してソートします。

reverse – ソートルール、reverse = True 降順、 reverse = False 昇順(デフォルト)。


このメソッドには戻り値はありませんが、リストのオブジェクトをソートします。


sorted構文:




sorted(iterable, cmp=None, key=None, reverse=False)


パラメータの説明:


* iterable – 反復可能オブジェクト。
* cmp – 比較関数、この関数は2つのパラメータを持ち、パラメータの値は反復可能オブジェクトから取得されます。この関数は、大きい場合は1を返し、小さい場合は-1を返し、等しい場合は0を返す必要があります。
* key – 主に比較に使用される要素で、パラメータは反復可能オブジェクトから取得され、反復可能オブジェクト内の特定の要素を指定してソートします。
* reverse – ソートルール、reverse = True 降順 、 reverse = False 昇順(デフォルト)。

#### Pythonリストの関数とメソッド


##### len()関数


len()関数はPythonの組み込み関数で、シーケンス(文字列、リスト、タプルなど)またはコレクション(辞書、セットなど)の長さまたは要素数を返します。


具体的には、`len()` 関数の作用は、作用するオブジェクトの型によって異なります:


* 文字列の場合、`len()` は文字列内の文字数を返します。
* リスト、タプル、またはその他のシーケンスタイプの場合、`len()` はシーケンス内の要素数を返します。
* 辞書の場合、`len()` は辞書内のキーと値のペアの数を返します。
* セットの場合、`len()` はセット内の要素数を返します。




文字列に対するlen()の使用

my_string = "こんにちは、世界!" print(len(my_string)) # 出力 13、文字列には13文字が含まれているため

リストに対するlen()の使用

my_list = [1, 2, 3, 4, 5] print(len(my_list)) # 出力 5、リストには5つの要素が含まれているため

辞書に対するlen()の使用

my_dict = {'a': 1, 'b': 2, 'c': 3} print(len(my_dict)) # 出力 3、辞書には3つのキーと値のペアが含まれているため


##### max()とmin()関数


`max()` 関数はPythonの組み込み関数で、指定されたパラメータの最大値を返します。`max()` 関数は複数のパラメータを受け取ることも、リストやタプルなどの反復可能オブジェクトを受け取ることもでき、その中で最大の要素を返します。


同様に`min()` 関数はPythonの組み込み関数で、指定されたパラメータの最小値を返します。`min()` 関数は複数のパラメータを受け取ることも、リストやタプルなどの反復可能オブジェクトを受け取ることもでき、その中で最小の要素を返します。


使用例:




数値の最大値を求める

print(max(5, 10, 3)) # 出力 10

文字列の最大値を求める

print(max("apple", "banana", "orange")) # 出力 "orange"

リスト内の要素の最大値を求める

my_list = [7, 2, 9, 1, 5] print(max(my_list)) # 出力 9

キーワード引数keyを使用して比較ルールを指定する

my_list_tuples = [(1, 'apple'), (3, 'banana'), (2, 'orange')] print(max(my_list_tuples, key=lambda x: x[0])) # 出力 (3, 'banana')、タプルの最初の要素で比較


##### list()関数


`list()` 関数はPythonの組み込み関数で、反復可能オブジェクト(タプル、文字列、リスト、辞書、セットなど)をリストに変換します。`list()` 関数を呼び出し、反復可能オブジェクトをパラメータとして渡すと、反復可能オブジェクト内の要素から構成される新しいリストを返します。


使用例:


1、文字列をリストに変換:




my_string = "hello" my_list = list(my_string) print(my_list) # 出力 ['h', 'e', 'l', 'l', 'o']


2、タプルをリストに変換:




my_tuple = (1, 2, 3) my_list = list(my_tuple) print(my_list) # 出力 [1, 2, 3]


3、セットをリストに変換:




my_set = {4, 5, 6} my_list = list(my_set) print(my_list) # 出力 [4, 5, 6]


**注意:**4、辞書のキーをリストに変換:




my_dict = {'a': 1, 'b': 2, 'c': 3} keys_list = list(my_dict.keys()) print(keys_list) # 出力 ['a', 'b', 'c']


##### index()関数


list.index(obj)


リストから指定された値の最初の一致項目のインデックス位置を見つけます


##### remove()関数


list.remove(obj)


リスト内の指定された値の最初の一致項目を削除します


### 要素の個数をカウント


`count()`関数は要素の出現回数をカウントできます。




list1 = [1,2,3,4,1,2,1,2,1] x = list1.count(1) print(x) #4


リスト内包表記


for




list1 = [1,2,3,4,5]

list2 = [num ** 2 for num in list1]

print(list2) #[1, 4, 9, 16, 25]


for … if




list1 = [1,2,3,4,5]

list2 = [num ** 2 for num in list1 if num > 2]

print(list2) #[9, 16, 25]


#### リストのディープコピーとシャローコピー


##### シャローコピー:


シャローコピー:元オブジェクトの値のコピーで、アドレスは元オブジェクトのアドレスを指すポインタのままです。シャローコピーまたは元オブジェクトの値が変更されると、元オブジェクトとシャローコピーのオブジェクトの値は両方とも変更されます。


ディープコピー:元オブジェクトのアドレスのコピーで、元オブジェクトと異なるアドレスの新しいオブジェクトがコピーされます。オブジェクト内の値を変更しても、ディープコピーされたオブジェクトの値は変更されません。


リストのシャローコピー:




original_list = [1, 2, 3, [4, 5]] copy_list = original_list[:]#copy_list = copy.copy(original_list) copy_list[3][0]=10 #出力は:[1, 2, 3, [10, 5]]


この例では、copy_listはoriginal_listのシャローコピーですが、要素自体はコピーされていますが、ネストされたリスト内の参照は同じままです。したがって、ここではcopy_listの内容の変更はoriginal_listの内容に影響を与えますが、一点注意が必要です:**シャローコピー時に変更されるのは必ず変更可能なシーケンスである必要があります**。以下の2つのケースのように。

タグ: Python リスト リスト操作 リスト内包表記 シャローコピー

7月14日 00:19 投稿