该
dis模块反汇编函数的字节码,对于查看元组和列表之间的区别很有用。
在这种情况下,您可以看到访问元素会生成相同的代码,但是分配元组要比分配列表快得多。
>>> def a():... x=[1,2,3,4,5]... y=x[2]...>>> def b():... x=(1,2,3,4,5)... y=x[2]...>>> import dis>>> dis.dis(a) 20 LOAD_ConST 1 (1) 3 LOAD_ConST 2 (2) 6 LOAD_ConST 3 (3) 9 LOAD_ConST 4 (4) 12 LOAD_ConST 5 (5) 15 BUILD_LIST 5 18 STORE_FAST 0 (x) 3 21 LOAD_FAST 0 (x) 24 LOAD_ConST 2 (2) 27 BINARY_SUBSCR 28 STORE_FAST 1 (y) 31 LOAD_ConST 0 (None) 34 RETURN_VALUE>>> dis.dis(b) 20 LOAD_ConST 6 ((1, 2, 3, 4, 5)) 3 STORE_FAST 0 (x) 36 LOAD_FAST 0 (x) 9 LOAD_ConST 2 (2) 12 BINARY_SUBSCR 13 STORE_FAST 1 (y) 16 LOAD_ConST 0 (None) 19 RETURN_VALUE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)