web-dev-qa-db-ja.com

unpack python Tuple with [] '

私はタプルを解凍するための標準的な方法がこのようなものです

_a, b, c = (1, 2, 3)
# or
(a,b,c) = (1, 2, 3)
_

しかし、あなたはこのようなタプルを解凍することができることに気づいた

_[a, b, c] = (1, 2, 3)
_

2番目の方法は、ある種のキャストまたはリストの構築のために余分なコストをかけますか? python通訳がコンパイラからのアセンブリを見てこのalkeをどのように対処しているかを検査する方法はありますか?

15
Philip Nelson

使用する GodboltPythonを選択すると、3行のコードを入力すると、すべて同じバイトコードがあることがわかります。

  1           0 LOAD_CONST               5 ((1, 2, 3))
              2 UNPACK_SEQUENCE          3
              4 STORE_NAME               0 (a)
              6 STORE_NAME               1 (b)
              8 STORE_NAME               2 (c)

  2          10 LOAD_CONST               6 ((1, 2, 3))
             12 UNPACK_SEQUENCE          3
             14 STORE_NAME               0 (a)
             16 STORE_NAME               1 (b)
             18 STORE_NAME               2 (c)

  3          20 LOAD_CONST               7 ((1, 2, 3))
             22 UNPACK_SEQUENCE          3
             24 STORE_NAME               0 (a)
             26 STORE_NAME               1 (b)
             28 STORE_NAME               2 (c)
 _

そのため、それらは同じではなく、異なる構文です。

7
Aplet123

Linux Perf Toolsを使用して実行時間とサイクル数を確認しました。 3つのプログラムはすべて同じ実行時間を示しているので、追加のコストはありません。

1
Nagmat