PYthon新手 关于遍历嵌套列表中使用DEF 自定义函数 print 和 return的问题
# L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]# 1) 写一个函数print_list(lst) 打印出所有元素
# print_list(L) # 打印 3 5 8 10 13 14 ...
def print_list(L):
for l in L:
if type(l) is int:
print(l)
else:
print_list(l)
结果:
3
5
8
10
13
14
15
18
20
L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
print_list(L)
def print_list(L):
for l in L:
if type(l) is int:
print(l)
else:
print(print_list(l))
L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
print_list(L)
结果如下:
3
5
8
None
10
13
14
None
15
18
None
20
若是将上述的红色部分换成return(print_list(l))时,是什么结果呢
def print_list(L):
for l in L:
if type(l) is int:
print(l)
else:
return(print_list(l))
L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
print_list(L)
结果如下:
3
5
8
有三个部分,就对第一部分,关于打印嵌套列表中的每一个元素,是否是先执行else部分之后再调用自定义函数本身后再执行If部分.第二就是关于使用print(print_list(l))后,3,5,8为什么会被打印出来.第三,使用内建函数return后为什么只打印出了3,5,8?