0

こんにちは、内包リストに角括弧を使用する場合と list() を使用する場合の違いがわかりませんでした

パフォーマンス/メモリ割り当ての違いはありますか?

( set と dict の同じ質問)

input = [1, 2, 3, 4]

B = [a * 2 for a in input if a > 1]

C = list(a * 2 for a in input if a > 1)

B_set = {str(a) for a in input if a > 1}

C_set = set(str(a) for a in input if a > 1)

B_dict = {str(a):a for a in input if a > 1}

C_dict = dict(str(a):b for a,b in input if a > 1) # NOT LEGAL

ご協力ありがとうございました

4

3 に答える 3

0

[]リテラルはpython直接コンパイルしてバイトコードを作成することを意味するのに対し、 list() はバイトコードを作成する前に名前解決、スタック割り当てなどを必要とするオブジェクトlist()であるため、はるかに高速です。[]

于 2020-07-19T19:36:44.723 に答える