怎样理解python数组中的for语句?

def f(x):
return(10*x)
a=[1,2,3]
b=[f(t) for t in a]
print(b)

结果:[10, 20, 30]
意思能够理解,但是我想知道编译器在读取b=[f(t) for t in a] 这一句是怎么拆解成一步步命令的?感觉很神奇,就这么一句就做了好多步骤。。。
谢谢


暮色呼如
浏览 947回答 1
1回答

慕田峪4524236

了解一下堆栈虚拟机和字节码python用dis模块将程序反编译为字节码对应的操作码。>>> import dis>>> def f(x):     return(10*x)>>> def x():     a=[1,2,3]    for i in a:         b=f(i)         print(b)         >>> dis.dis(x)  2           0 LOAD_CONST               1 (1)              3 LOAD_CONST               2 (2)              6 LOAD_CONST               3 (3)              9 BUILD_LIST               3              12 STORE_FAST               0 (a)  3          15 SETUP_LOOP              36 (to 54)             18 LOAD_FAST                0 (a)             21 GET_ITER        >>   22 FOR_ITER                28 (to 53)             25 STORE_FAST               1 (i)  4          28 LOAD_GLOBAL              0 (f)             31 LOAD_FAST                1 (i)             34 CALL_FUNCTION            1 (1 positional, 0 keyword pair)             37 STORE_FAST               2 (b)  5          40 LOAD_GLOBAL              1 (print)             43 LOAD_FAST                2 (b)             46 CALL_FUNCTION            1 (1 positional, 0 keyword pair)             49 POP_TOP             50 JUMP_ABSOLUTE           22         >>   53 POP_BLOCK        >>   54 LOAD_CONST               0 (None)             57 RETURN_VALUE>>>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python