リストからシーケンスに移行するときに注意すべき問題
(未完成、カタログのみ)
リスト
単純なデータ型
コンテナーのデータ型
- list<クラス 'リスト'>
- タプル<クラス 'タプル'>
- 辞書<クラス 'dict'>
- コレクション<クラス 'セット'>
- 文字列<クラス 'str'>
リストの定義と作成
リストは、サイズが固定されていない順序付けされたコレクションであり、任意のタイプの任意の数の Python オブジェクトを格納できます。構文は [要素 1, 要素 2, ..., 要素 n] です。
- 通常のリストを作成する
- range() を使用してリストを作成します
- 内包表記を使用してリストを作成する
注:x = [a] * 4
この操作では、リストへの参照が 4 つだけ作成されるため、a
変更すると、x
そのうちの 4 つもそれa
に応じて変更されます。
- 混合リストを作成する
- 空のリストを作成する
リスト内の要素の追加、削除、取得
`
追加:
list.append(obj) 在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在
元の構造タイプは list` に保持されます。append()
との違いに注意してくださいextend()
。list.extend(seq)
別のシーケンスからの複数の値をリストの最後に一度に追加します (元のリストを新しいリストで拡張します)list.insert(index, obj)
番号のindex
位置挿入しますobj
。
消去:
list.remove(obj)
リスト内の最初に出現した値を削除しますlist.pop([index=-1])
リスト内の要素 (デフォルトでは最後の要素) を削除し、要素の値を返します。del var1[, var2 ……]
単一または複数のオブジェクトを削除します。- リストから要素を削除し、それをまったく使用しない場合は、 del ステートメントを使用します。要素を削除した後も引き続き使用する場合は、メソッドを使用します
pop()
。
取得: 演習の例
例 1
x = ['Monday', 'Tuesday', 'Wednesday', ['Thursday', 'Friday']]
print(x[0], type(x[0])) # Monday <class 'str'>
print(x[-1], type(x[-1])) # ['Thursday', 'Friday'] <class 'list'>
print(x[-2], type(x[-2])) # Wednesday <class 'str'>
例2
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(x[3:]) # ['Thursday', 'Friday']
print(x[-3:]) # ['Wednesday', 'Thursday', 'Friday']
例3
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[:3]) # ['Monday', 'Tuesday', 'Wednesday']
print(week[:-3]) # ['Monday', 'Tuesday']
例4
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[1:3]) # ['Tuesday', 'Wednesday']
print(week[-3:-1]) # ['Wednesday', 'Thursday']
例5
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[1:4:2]) # ['Tuesday', 'Thursday']
print(week[:4:2]) # ['Monday', 'Wednesday']
print(week[1::2]) # ['Tuesday', 'Thursday']
print(week[::-1])
# ['Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday']
例6
eek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[:])
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
例 7 深いコピーと浅いコピー
list1 = [123, 456, 789, 213]
list2 = list1
list3 = list1[:]
print(list2) # [123, 456, 789, 213]
print(list3) # [123, 456, 789, 213]
list1.sort()
print(list2) # [123, 213, 456, 789]
print(list3) # [123, 456, 789, 213]
list1 = [[123, 456], [789, 213]]
list2 = list1
list3 = list1[:]
print(list2) # [[123, 456], [789, 213]]
print(list3) # [[123, 456], [789, 213]]
list1[0][0] = 111
print(list2) # [[111, 456], [789, 213]]
print(list3) # [[111, 456], [789, 213]]
リストの一般的な演算子
- 等号演算子:
==
- 結合演算子
+
- 繰り返し演算子
*
- 会員制運営者
in
、not in
「等号 ==」
は、メンバーとメンバーの位置が同じ場合にのみ返されますTrue
。
リストを結合するには、「プラス記号+
」と「乗算記号*
」を使用する 2 つの方法があります。
リストのその他のメソッド
list.count(obj)
要素がリスト内に出現する回数をカウントします。list.index(x[, start[, end]])
リスト内で最初に出現する値のインデックス位置を検索します。list.reverse()
逆リスト要素list.sort(key=None, reverse=False)
元のリストを並べ替えます。
また
key --
、主に比較に使用される要素であり、パラメータは 1 つだけであり、特定の関数のパラメータを反復可能オブジェクトから取得し、ソートのために反復可能オブジェクト内の要素を指定します。
reverse --
照合順序、reverse = True
降順、reverse = False
昇順 (デフォルト)。
このメソッドには戻り値はありませんが、リスト内のオブジェクトを並べ替えます。
タプル
タプルの作成とアクセス、更新と削除
タプルに関連する演算子
組み込みメソッド
タプルを解凍する
弦
一般的に使用されるエスケープ文字:
\\
バックスラッシュ記号
\'
、一重引用符、
\"
二重引用符、
\n
改行、
\t
水平タブ (TAB)、
\r
キャリッジ リターン