私のアプリケーションではunits
とerrors
は常に数値のリストです。私は各部が何をしているのか調べてみて、ジッパーのモアの部分を考え出した。それはコードzip(* sorted(zip(units、errors)))は何をしますか?
ziped_list = zip(units, errors)
は、単にペア単位とエラーを[...,(unit, error),...]
としてリストを生成するようです。それはソートされたものに渡され、要素をソートします。私はkey
の引数を指定しなかったので、ドキュメントが示すように要素を直接比較します。
デフォルト値はNone(要素を直接比較)です。
ziped_list
は整数のタプルのリストであるため、タプルを直接比較すると思われます。私の端末(のpython 3)の小さな例から、それはそれが最初の要素に基づいて比較するようです(ドキュメントが比較を意味していても、要素が賢明です):
>>> (1,None) < (2,None)
True
>>> (2,None) < (1,None)
False
最後のビット開梱してからまだ残っているジップ謎と私は彼らが何をするか把握することができませんでした。私は*
が位置引数にアンパックすることを理解していますが、*
を実行しても、コマンドラインで試してみると、その動作を正確に見ることはできません。私がさらに混乱しているのは、が、*sorted
などのアンパックリストを引き数として渡す必要がある理由です。これはすでに引数としてzip(*iterable)
という変数がiterableという変数を取る場合です。私は入力としてイテラブルのリストを許可するものを解凍する必要があるのは混乱しているように思えます。
タプルの比較は、最初の要素だけでなく、前述と同様に辞書編集的です。それがどのように動作するかを見るには、 '(1,1)'、 '(1,2)'、 '(2、1)'、 '(2、2) –
@DietrichEpp多分私は辞書編集の意味を理解していないかもしれません。 – Pinocchio
別名「アルファベット順」 –