一覧ブリーフ
リスト:データセットのいずれかのタイプの任意の番号を格納します。
可変配列リストが構築され、注文した連続したメモリ空間は、複数の要素を備えています。リストには、標準の構文を定義しています。
a = [10,20,30,40]
その中で、10、20、これらが呼び出されます。エレメントのリスト。
リストの要素は、任意のタイプであってもよいし、異なる場合があります。例えば:
a = [10,20,'abc',True]
オブジェクトのリストは、一般的に使用される方法は、学習および参照を容易にするため、以下に要約されています。
方法 | 点数 | 説明 |
---|---|---|
list.insert(インデックス、X) | 要素を追加します。 | 指定された場所のインデックスリストで、リスト内の要素xを挿入 |
list.append(X) | 要素が増加のリストの最後 | 要素のリストXテールリストに追加されます |
list.extend(aListの) | リストBの最後にすべての要素のリスト | リストリストに尾のすべての要素のリストの連想リスト |
list.remove(X) | 要素を削除します | リスト内のxで指定された要素の最初の発生を削除 |
list.pop([インデックス]) | 要素を削除します | 削除して、インデックスリストで指定された要素までリストを返し、デフォルトでは最後の要素であります |
list.clear() | すべての要素を削除します。 | オブジェクトのリストを削除しないよう、すべての要素のリストを削除します。 |
list.index(X) | 要素へのアクセス | そこにあれば戻り値のインデックス位置x、Xの要素が例外をスローします |
list.count(X) | カウント | 戻り値は、回数は、リスト内のリスト内の要素のx表示され、指定しました |
LEN(リスト) | リストの長さ | 戻り値のリストの要素数が含まれています |
list.reverse() | フリップリスト | 場所内のすべての要素をフリップ |
list.sort() | シーケンス | 場所内のすべての要素をソート |
list.copy() | シャローコピー | 戻り値オブジェクトの浅いコピーのリスト |
list.deepcopy() | ディープコピー | オブジェクトの深いコピーのリストを返します。 |
文字列とリストはタイプの配列で、文字列は文字のシーケンスであり、リストは、任意の要素のシーケンスです。私が持っている
リストに類似した使用量がほぼ同じであり、それ以前の文字列を学ぶために多くの方法を。
のリストを作成します。
基本的な構文[]作成します
>>> a = [10,20,'gaoqi','sxt']
>>> a = [] #创建一个空的列表对象
作成するためのリスト()
使用リスト()は、任意のデータは、反復のリストに変換することができるかもしれません。
>>> a = list() #创建一个空的列表对象
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = list("gaoqi,sxt")
>>> a
['g', 'a', 'o', 'q', 'i', ',', 's', 'x', 't']
整数のリストを作成する範囲()
範囲は()非常に簡単に開発に極めて有用である整数のリストを作成するために私たちを助けることができます。構文は次のとおりです。
範囲([スタート]、]終了[、STEP])
を起動パラメータ:オプションは、最初の数を表します。デフォルトは0で
終了パラメータ:必須数の終わりを示します。
ステップパラメータ:あるいは、既定のステップサイズを表す
のpython3(範囲内)の代わりにリストから、対象範囲を返します。私たちは、この方法は、()のリストを渡す必要がある
オブジェクトのリストに変換されます。
次のように典型的な例です。
>>> list(range(3,15,2))
[3, 5, 7, 9, 11, 13]
>>> list(range(15,3,-1))
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
>>> list(range(3,-10,-1))
[3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
導出は、(ループの後に話すに重点を置いた簡単なアカウント、)リストを生成します
多くの場合、開発に使用されるリストの内包表記を使用して、リストを作成することは非常に簡単にすることができます。しかし、それはforループに関連
し、if文。この場合、基本的な導入を行います。当社の制御文の裏では、我々はリストの内包に詳細に詳細を説明します。
>>> a = [x*2 for x in range(5)] #循环创建多个元素
>>> a
[0, 2, 4, 6, 8]
>>> a = [x*2 for x in range(100) if x%9==0] #通过 if 过滤元素
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
要素のリストを追加します。
リストで追加および削除要素は、リストが自動的にメモリ管理、大幅プログラマの負担を軽減しますとき。しかし、
モバイルの特性の多数が少ない効率的な要素のリストが含まれます。必要な場合を除き、当社は、一般的にのみ、リストの末尾に要素を追加
大幅リストの運用効率を向上させるであろう、または削除要素。
追記()メソッド
その場でオブジェクトのリストを変更し、新しい要素を追加するために、リストの本当の終わりで、最速、お勧めします。
>>> a = [20,40]
>>> a.append(80)
>>> a
[20, 40, 80]
+オペレータの操作
本当に尾の要素を追加しますが、オブジェクトの新しいリストを作成するわけではありません。リストの元の要素と順番に新しいリストの要素
の新しいオブジェクトリストにコピー。これにより、多数の素子を動作させるために、コピー操作の多くが参加することはお勧めしません。
>>> a = [20,40]
>>> id(a)
46016072
>>> a = a+[50]
>>> id(a)
46015432
上記のテストでは、我々は、変数のアドレスが変更されていました。つまり、新しいリストオブジェクトを作成します。
()メソッドを拡張
新しいリストオブジェクトを作成しないで、その場での操作であり、リストの末尾に、このターゲットリストのすべての要素を追加します。
>>> a = [20,40]
>>> id(a)
46016072
>>> a.extend([50,60])
>>> id(a)
46016072
要素インサートインサート()
使用インサートは()メソッドは、オブジェクトリストの位置を開発するために、任意の指定された要素の中に挿入することができます。これは、の挿入位置になります
、すべての移動要素の表面を処理速度に影響を与えることができます。多数の要素を含む、使用しないようにしてみてください。そのような類似の発生
移動も機能:削除()、POP() 、デル()、 末尾の要素は、非削除するときに作動位置の後に起こるであろう
表面要素を移動させます。
>>> a = [10,20,30]
>>> a.insert(2,100)
>>> a
[10, 20, 100, 30]
乗算拡張
使用乗算は、リストを展開し、新しいリスト、新しいリストの要素の繰り返し要素の元のリストを生成します。
>>> a = ['sxt',100]
>>> b = a*3
>>> a
['sxt', 100]
>>> b
['sxt', 100, 'sxt', 100, 'sxt', 100]
文字列、タプル:乗算演算、などに適しています。例えば:
>>> c = 'sxt'
>>> d = c*3
>>> c
'sxt'
>>> d
'sxtsxtsxt'
削除リスト要素
デルの削除
場所でリスト要素を削除します。
>>> a = [100,200,888,300,400]
>>> del a[1]
>>> a
[100,200,300,400]
ポップ()メソッド
ポップ()削除して、リターン要素の指定された位置、場所が指定されていない場合、デフォルトのアクションリストの最後の要素。
>>> a = [10,20,30,40,50]
>>> a.pop()
50
>>> a
[10, 20, 30, 40]
>>> a.pop(1)
20
>>> a
[10, 30, 40]
remove()メソッド
要素が例外をスローすることがある場合、指定された要素の最初の発生を削除します。
>>> a = [10,20,30,40,50,20,30,20,30]
>>> a.remove(20)
>>> a
[10, 30, 40, 50, 20, 30, 20, 30]
>>> a.remove(100)
Traceback (most recent call last):
File "<pyshell#208>", line 1, in <module>
a.remove(100)
ValueError: list.remove(x): x not in list
アクセス数とリストの要素
インデックス要素を経由して直接アクセス
私たちは、直接インデックスで要素にアクセスすることができます。インデックス区間[0、リストの長さ-1]の範囲。この範囲外の
例外がスローされます。
>>> a = [10,20,30,40,50,20,30,20,30]
>>> a[2]
30
>>> a[10]
Traceback (most recent call last):
File "<pyshell#211>", line 1, in <module>
a[10]
IndexError: list index out of range
初めてリスト内の指定された要素のインデックスを取得するための指標()
インデックス()は指定された要素の最初の発生のインデックス位置を得ることができます。構文は次のとおりです。インデックス(値は、[開始、 [終了])。これは、
開始と終了、検索の範囲を指定します。
>>> a = [10,20,30,40,50,20,30,20,30]
>>> a.index(20)
1
>>> a.index(20,3)
5
>>> a.index(20,3) #从索引位置 3 开始往后搜索的第一个 20
5
>>> a.index(30,5,7) #从索引位置 5 到 7 这个区间,第一次出现 30 元素的位置
6
カウント()リストに表示される要素の指定された数を取得します
カウント()リストに表示される要素の指定された数を返すことがあります。
>>> a = [10,20,30,40,50,20,30,20,30]
>>> a.count(20)
3
lenは()の長さのリストを返します
lenは()すなわち、リストに含まれる要素の数リストの長さを返します。
>>> a = [10,20,30]
>>> len(a)
3
会員判決
リストから指定された要素は、我々は、カウント()メソッドを使用できるかどうかを判定し、0を返しますが不在は、戻りを示す
より0以上が存在することを示しています。しかし、我々は、典型的には、直接リターン真、決定するためのキーワードでより簡潔を使用
またはFalse。
>>> a = [10,20,30,40,50,20,30,20,30]
>>> 20 in a
True
>>> 100 not in a
True
>>> 30 not in a
False
スライス
私たちは、文字列の前に学ぶように、文字列はスライスと文字列のリストに似たスライスの動作を、研究しました。
Pythonとスライスは、一連の操作であるタプル、文字列などのリストについては、重要です。次のようにスライスの形式は次のとおりです。
スライススライス操作は、私たちはすぐにサブリストを抽出したり、変更することができます。標準形式は:
[開始オフセット開始:[終了オフセットを終了:ステップSTEP]
注:省略ステップは、介して第2のコロンを省略することができる場合
典型的な動作(3つの正の数量)を次のように
取扱説明書と | 例 | 結果 |
---|---|---|
[:]リスト全体を抽出するには | [10,20,30] [:] | [10,20,30] |
[スタート:]インデックスの最初から最後までスタート | [10,20,30] [1] [20,30] | |
[:終了]最初のノウハウからエンド-1 | [10,20,30] [2] | [10,20] |
[スタート]:終了]開始から終了-1へ | [10,20,30,40] [1:3] | [20,30] |
[スタート:終了:ステップ】開始から終了-1抽出工程ステップ | [10,20,30,40,50,60,70] [1:6:2] | [20、40、60] |
ケースの他の動作(3枚の負量)。
例 | 説明 | 結果 |
---|---|---|
[10,20,30,40,50,60,70] [ - 3:] | 三つの逆数 | [50,60,70] |
10,20,30,40,50,60,70] [ - 5:-3] | 終わりから3番目の第五のカウントダウン(NOヘッダトレーラ) | [30,40] |
[10,20,30,40,50,60,70] [:: - 1] | ステップは負で、右から左へ逆抽出 | [70、60、50、40、30、20、10] |
スライス操作、オフセット開始オフセットと終了[0文字列の長さ- 1]でない場合、この範囲、エラーはないであろう。出発
未満0として「長さ-1」として扱われるよりも大きいオフセットを終了するオフセット「長さ-1。」例えば:
>>> [10,20,30,40][1:30]
[20, 30, 40]
私たちは、エラーがない、つまり通常の出力結果を見つけました。
のリストを
for obj in listObj:
print(obj)
オブジェクトの新しいリストにリストのすべての要素をコピーします。
次のコードの実装、それをコピーする要素のリスト?
list1 = [30,40,50]
list2 = list1
しかし、LIST2もLIST1とLIST2を言うことである、オブジェクトのリストを指しますアドレス値は、このオブジェクトの一覧同じ保持
体要素とコピーされません。
私たちは、達成するための簡単な方法でリスト要素の内容をコピーすることができます。
list1 = [30,40,50]
list2 = [] + list1
注:学習コピーモジュール、浅いコピーや深いコピーは、当社のコピー操作を実現使用。
リストソート
ソート新しいリストを作成していない、元のリストを変更します。
>>> a = [20,10,30,40]
>>> id(a)
46017416
>>> a.sort() #默认是升序排列
>>> a
[10, 20, 30, 40]
>>> a = [10,20,30,40]
>>> a.sort(reverse=True) #降序排列
>>> a
[40, 30, 20, 10]
>>> import random
>>> random.shuffle(a) #打乱顺序
>>> a
[20, 40, 30, 10]
内蔵発注新しいリスト
我々はまた、ソート、組み込みの機能を通じて()をソートすることができ、この方法は、新しいリストを返し、元のリストを変更しないでください。
>>> a = [20,10,30,40]
>>> id(a)
46016008
>>> a = sorted(a) #默认升序
>>> a
[10, 20, 30, 40]
>>> id(a)
45907848
>>> a = [20,10,30,40]
>>> id(a)
45840584
>>> b = sorted(a)
>>> b
[10, 20, 30, 40]
>>> id(a)
45840584
>>> id(b)
46016072
>>> c = sorted(a,reverse=True) #降序
>>> c
[40, 30, 20, 10]
以上の動作により、我々が見ることができ、オブジェクトBとCの結果リストは、完全に新しいオブジェクトリストです。
逆()イテレータを返します
内蔵逆転機能()も、逆の順序をサポートし、オブジェクトのリストでは、逆()メソッドは、組み込みの機能は、異なる
逆に()元のリストに変更を加えたが、逆の順序でイテレータオブジェクトを返しません。
>>> a = [20,10,30,40]
>>> c = reversed(a)
>>> c
<list_reverseiterator object at 0x0000000002BCCEB8>
>>> list(c)
[40, 30, 10, 20]
>>> list(c)
[]
我々の調査結果はプリントアウトがCであることを示唆しています:list_reverseiterator
。これは、繰り返しオブジェクトです。同時に、我々が使用する
list(c)
出力を、それが一度だけ見つけました。第一の出力要素は、第二は空です。反復オブジェクトので、それがされている
最初の時間がオーバー横断した、第二は使用できません
他のビルトイン関連の機能概要一覧
最大値と最小値
最大値と最小値のリストを返すために使用されます。
[40, 30, 20, 10]
>>> a = [3,10,20,15,9]
>>> max(a)
20
>>> min(a)
3
和
数字の加算操作のリストのすべての要素が実行され、非数値計算のリストが与えられます。
>>> a = [3,10,20,15,9]
>>> sum(a)
57
:で再現https://blog.csdn.net/weixin_43158056/article/details/92798505