カプセル化と分解
- パッケージ
- 複数の値をコンマで区切り、それらを組み合わせる
- 基本的に、タプルを返しますが、括弧は省略します
- Python独自の文法、多くの言語から学び、学ぶ#たとえばES6
- t1 =(1,2)#タプルとして定義
- t2 = 1,2#タプルに1と2をパック
- タイプ(t1)
- タイプ(t2)
タプルはリストよりも単純で、メモリ内のリストよりも軽いため、リストは閉じられます
- 例
a = 4
b = 5
temp = a
a = b
b = temp
a,b=b,a
# 上面语句当中,等号右边使用了封装,而左边就使用了解构
解体
-
線形構造の要素を解き、それらを順番に他の変数に割り当てます
-
左側で受け入れられる変数の数は、右側でアンラップされる要素の数と同じでなければなりません
-
例
- lst = [3,5]
- first、second = lst
- 印刷(最初、2番目)
-
例
a,b=1,2
a,b=(1,2)
a,b=[1,2]
a,b=[10.20]
a,b={10.20}
a,b=('a':10,'b':20) # 非线性结构也可以解构
a,b={10,20,30}
a,*b={10,20,30}
[a,b]=(1,2)
[a,b]=10,20
(a,b)={30,40}
python3分解
- 使用して、
*变量名
受け取ったが、単独で使用することはできません - 彼らはされている
*变量名
リストを形成するために収集します - 例
- lst = list(range(1,101,2))
- head、* mid、tail = lst
- * lst2 = lst
- * body、tail = lst
- head、* tail = lst
head,*m1,*m2,tail=lst
head,*mid,tail
= * abcdefghijklmn- タイプ(中)
変数を破棄する
- これは規約であり、書面による合意ではなく、標準です
- 変数を気にしない場合は、変数名を次のように定義できます
_
_
これは有効な識別子であり、有効な変数としても使用できます。- ただし、アンダースコアとして定義されるのは、このデータを使用する必要があることを明確に知らない限り、使用されないことを期待することです
- 例
lst=[9,8,7,20]
first,*second=lst
head,*_,tail=lst
- プリント(ヘッド)
- プリント(テール)
#_
これは正当な識別子です。下線が表示されている場合、この変数は使用したくないだけです。print(_)
lst=[9,8,7,20]
first,*second=lst
_,*_,tail=lst
print(_)
print(tail)
print(_)
- まとめ
_
この変数自体にはセマンティクスと可読性がないため、人間による使用を目的としていません。- Pythonの多くのライブラリは、この変数を使用しています。この変数は非常に広く使用されています。
- 変数のスコープを指定せず
_
にライブラリとの_
競合を引き起こさないでください
- 練習
- lst = list(範囲(10))#そのようなリスト、2番目、4番目、最後から2番目を取り出します
練習
lst=[1,(2,3,4),5]
4から抽出- 環境変数
JAVA_HOME=/usr/bin
、変数名とパスを返す [1,9,8,5,6,7,4,3,2]
バブルメソッドを使用してリストを並べ替えます。カプセル化と構造を使用してデータを操作する必要があります。
lst=[1,(2,3,4),5]
a,(b,c,d),e=lst
print(a,b,c,d,e)
_,(*_,val),*_=lst
print(val)
_,[*_,val],*_=lst
print(val)
key,_,val='JAVA_HOME=/usr/bin'.partition('=')
print(key)
print(val)
- まとめ
- 分解はPythonが提供する優れた機能であり、複雑なデータ構造の値を簡単に抽出できます。
_
使用、それがより便利になります!