前書き
今日は、条件付きステートメントとループステートメントの2つのセクションを学びました。Pythonは多くを使用します。以前はあまり知りませんでした。これは習得する必要があることです。Pythonでの特定の使用法について簡単に説明します(リストとメタ)。グループはコンテナであり、一連のオブジェクトです。)
1.リスト
1.リストの定義と作成
リストは順序付けられたコレクションであり、固定サイズはなく、任意のタイプの任意の数のPythonオブジェクトを格納できます。構文は[要素1、要素2、…、要素n]です。
- 重要なポイントは括弧とコンマです
- ブラケットはすべての要素を結び付けます
- コンマは各要素を1つずつ分離します
(1)リストを作成します。
デモコードは次のとおりです。
x = ['one', 'two', 'three', 'four']
print(x, type(x))
# ['one', 'two', 'three', 'four'] <class 'list'>
(2)range()と控除を使用してリストを作成します。
デモコードは次のとおりです。
x = list(range(1, 11, -2))#-2表示在循环中递减2
print(x)
x = [i ** 2 for i in range(1, 10)]
print(x)
# [10, 8, 6, 4, 2]
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
注:
リストの要素は任意のオブジェクトにすることができるため、オブジェクトへのポインターはリストに格納されます。単純な[1,2,3]を保存しても、3つのポインターと3つの整数オブジェクトがあります。
x = [a] * 4操作では、リストへの参照が4つだけ作成されるため、変更すると、xの4aも変更されます。
デモコードは次のとおりです。
x = [[0] * 3] * 4
print(x)
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
a = [0] * 3
x = [a] * 4
print(x)
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
x[0][0] = 1
print(x)
# [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
(3)混合リストを作成します。
デモコードは次のとおりです。
mix = [1, 'lsgo', 3.14, [1, 2, 3]]
print(mix)
# [1, 'lsgo', 3.14, [1, 2, 3]]
ヒント:
リストはタプルのようなものではありません。リストの内容は変更(変更可能)できるため、追加(拡張)、挿入(挿入)、削除(削除、ポップ)などの操作をすべて使用できます。
2.リストに要素を追加します
-
list.append(obj)は、リストの最後に新しいオブジェクトを追加します。これは1つのパラメーターのみを受け入れます。パラメーターは任意のデータタイプにすることができます。追加された要素は、リスト内の元の構造タイプを保持します。
-
list.extend(seq)は、リストの最後に別の順序で複数の値を一度に追加します(元のリストを新しいリストで拡張します)
-
list.insert(index、obj)objをインデックス位置に挿入します。
デモコードは次のとおりです。
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
x.append('Thursday')
print(x)
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday']
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
x.extend(['Thursday', 'Sunday'])
print(x)
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday', 'Sunday']
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
x.insert(2, 'Sunday')
print(x)
# ['Monday', 'Tuesday', 'Sunday', 'Wednesday', 'Thursday', 'Friday']
注:
(1)この要素がリストの場合、このリストは全体として追加されます。append()とextend()の違いに注意してください。
(2)厳密に言えば、appendは追加であり、リストの後ろに全体として1つのものを追加し、extendは拡張して、リストの後にあるもののすべての要素を追加します。
3.リスト内の要素を削除します
- list.remove(obj)は、リスト内の値の最初の一致を削除します
- list.pop([index = -1])リストから要素(デフォルトでは最後の要素)を削除し、要素の値を返します
- del var1 [、var2……]単一または複数のオブジェクトを削除します。
デモコードは次のとおりです。
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
x.remove('Monday')
print(x) # ['Tuesday', 'Wednesday', 'Thursday', 'Friday']
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
y = x.pop()
print(y) # Friday
y = x.pop(0)
print(y) # Monday
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
del x[0:2]#从Monday开始的两个元素
print(x) # ['Wednesday', 'Thursday', 'Friday']
注:
(1).removeとpopはどちらも要素を削除できます。前者は削除する特定の要素を指定し、後者はインデックスを指定します。
(2)リストから要素を削除し、それを使用しなくなった場合は、delステートメントを使用します。要素を削除した後も引き続き使用する場合は、メソッドpop()を使用します。
4.リスト内の要素を取得します
- リストから要素のインデックス値を介して単一の要素を取得します。リストのインデックス値は0から始まることに注意してください。
- インデックスを-1として指定すると、Pythonは最後のリスト要素を返し、インデックス-2は最後から2番目のリスト要素を返します。
デモコードは次のとおりです。
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'>
スライスを書く通常の方法は start : stop : step
- ケース1-「開始:」からリストスライスの
step
番号から1(デフォルト)までstart
。 - ケース2-「:stop」は、step as 1(デフォルト)を使用して、リストの先頭から番号stopまでスライスします。
- ケース3-「開始:停止」は、ステップを1(デフォルト)として使用して、開始から停止までスライスします。
- ケース4-「開始:停止:ステップ」は、特定のステップで番号の開始から番号の停止までスライスします。最後にstepを-1に設定することは、リストを逆にソートすることと同じであることに注意してください。
- ケース5- ":"リスト内のすべての要素をコピーします(浅いコピー)。
デモコードは次のとおりです。
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(x[3:]) # ['Thursday', 'Friday']
print(x[-3:]) # ['Wednesday', 'Thursday', 'Friday']
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[:3]) # ['Monday', 'Tuesday', 'Wednesday']
print(week[:-3]) # ['Monday', 'Tuesday']
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[1:3]) # ['Tuesday', 'Wednesday']
print(week[-3:-1]) # ['Wednesday', 'Thursday']
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']
eek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[:])
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
5.リストに一般的に使用される演算子
- 等符号演算子:==
- 連結演算子:+
- 演算子の繰り返し:*
- メンバーシップオペレーター:で、ではなく
リストスプライシングには、プラス記号と乗算記号を使用する2つの方法があります。前者のスプライシングはエンドツーエンドで、後者のコピースプライシングです。
デモコードは次のとおりです。
list1 = [123, 456]
list2 = list1 * 3
print(list2) # [123, 456, 123, 456, 123, 456]
6.リストする他の方法
- list.count(obj)は、要素がリストに表示される回数をカウントします
- list.index(x [、start [、end]])リストから値の最初の一致のインデックス位置を検索します
- list.reverse()リスト内の要素を反転します
デモコードは次のとおりです。
list1 = [123, 456] * 3
num = list1.count(123)
print(num) # 3
print(list1.index(123)) # 0
print(list1.index(123, 1)) # 2
print(list1.index(123, 3, 7)) # 4
x = [123, 456, 789]
x.reverse()
print(x) # [789, 456, 123]
list.sort(key = None、reverse = False)元のリストを並べ替えます。
- キー-主に要素を比較するために使用されます。パラメーターは1つだけです。特定の関数のパラメーターは、反復可能オブジェクトから取得され、反復可能オブジェクト内の要素を指定して並べ替えます。
- 逆ソートルール、reverse =降順の場合はTrue、reverse =昇順の場合はFalse(デフォルト)。
- このメソッドには戻り値はありませんが、リスト内のオブジェクトをソートします。
デモコードは次のとおりです。
x = [123, 456, 789, 213]
x.sort()
print(x)
# [123, 213, 456, 789]
x.sort(reverse=True)
print(x)
# [789, 456, 213, 123]
二、タプル
1.タプルを作成してアクセスします
- Pythonタプルはリストに似ていますが、文字列と同様に、作成後にタプルを変更できない点が異なります。
- タプルには括弧を使用し、リストには角括弧を使用します。
- タプルはリストに似ており、整数を使用してインデックスを作成し、スライスします。
デモコードは次のとおりです。
t1 = (1, 10.31, 'python')
print(t1)
#(1, 10.31, 'python')
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8)
print(tuple1[1]) # 2
print(tuple1[5:]) # (6, 7, 8)
print(tuple1[:5]) # (1, 2, 3, 4, 5)
注:
括弧()を使用してタプルを作成することも、何も使用しないこともできます。読みやすくするために、()を使用することをお勧めします。
タプルに要素が1つしかない場合は、要素の後にコンマを追加する必要があります。そうしないと、括弧が演算子として使用されます。
2次元のタプルを作成します。
デモコードは次のとおりです。
a=(2,'zmt',9.45),('zgk','bcj','0')
print(a)
#(2,'zmt',9.45),('zgk','bcj','0')
print(a[0],a[0][1],a[1][0])
#(2,'zmt',9.45),'zmt',zgk
print(a[0][0:2])
#(2,'zmt')
2.タプルを変更して追加します
デモコードは次のとおりです。
t = (1, 2, 3, ['d', 5, 6])
t[3][0]=4
print(t)
#(1, 2, 3, [4, 5, 6])
t=t[2:]+'zmt'+t[:2]
print(t)
#(1, 2,'zmt',3, [4, 5, 6])
ヒント:
タプルは不変であるため、タプルの要素に直接値を割り当てることはできませんが、タプルの要素を変更(可変)できる限り、その要素を直接変更できます。これに注意して割り当ててください。要素が異なります。
3.タプルに関連するオペレーター
- 等符号演算子:==
- 連結演算子:+
- 演算子の繰り返し:*
- メンバーシップオペレーター:で、ではなく
このコードはすべての人に表示されるわけではありません。これは以前からあります。
4.組み込みメソッド
タプルのサイズと内容は変更できないため、カウントとインデックスの2つの方法しかありません。
デモコードは次のとおりです。
t = (1, 10.31, 'python')
print(t.count('python')) #count('python') 是记录在元组 t 中该元素出现几次,显然是 1 次
# 1
print(t.index(10.31)) #index(10.31) 是找到该元素在元组 t 的索引,显然是 1
# 1
5.タプルを解凍します
(1)1次元タプルを解凍します(いくつかの変数を定義するために、左側のブラケットにいくつかの要素があります)
デモコードは次のとおりです。
t = (1, 10.31, 'python')
(a, b, c) = t
print(a, b, c)
# 1 10.31 python
(2)2次元タプルを解凍します(タプル内のタプル構造に従って変数を定義します)
デモコードは次のとおりです。
t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t
print(a, b, c, d)
# 1 10.31 OK python
(3)タプルに少数の要素のみが必要な場合は、ワイルドカード*を使用します。これは、英語ではワイルドカードと呼ばれ、コンピューター言語で1つ以上の要素を表します。次の例は、rest変数に複数の要素をスローすることです。
デモコードは次のとおりです。
t = 1, 2, 3, 4, 5
a, b, *rest, c = t
print(a, b, c) # 1 2 5
print(rest) # [3, 4]