何年も前から、私はさまざまなビットとPythonの断片で「ワイルドカード」変数に気付きました。私はそれがHaskellのように機能していると仮定しました。仮パラメータに変数が必要な場所に変数を置くことができますが、バインドすることはできません。Pythonのワイルドカード?
私はこれを、変数のいずれかが必要でないときにタプルアンパックの代入の左側に使用しました。例えば
:
_, extension = os.path.splitext(filename)
だから私は今日、これに類似した何かを書いた:
(lambda (x,_,_): x)((1,2,3))
すなわち、アンダースコアを2回バインドしようとしましたが、構文エラーが発生しました。
(lambda (x,_,z): _)((1,2,3))
> 2
が_
ように見える他と同様に、単に変数名れる:私は_本当の変数が実際にあることを見て驚きました。
最初の例のように、私が好きなように使える真のワイルドカード変数がありますか(つまり、タプルのアンパック割り当てに複数の変数を使用できますか)?
これはアンパック時にも機能します: '(a、* rest、b)= [1,2,3,4]' – rplnt
また、ループには問題がありません彼ら自身の名前空間。 – rplnt
また、ラムダで '*'と '**'を使うこともできます。 – kindall