[问题] for 循环的用法

楼主: kobe770205 (joseph)   2015-07-08 16:46:34
movies = ["a1","a2","a3",["b1","b2",["c1"]]]
for a in movies:
if isinstance(a, list):
for b in a:
print(b)
else:
print(a)
小弟不才请教一下
a1
a2
a3
b1
b2
['c1']
为什么,会印出a1,a2,a3......这种个别单一资料
到了['c1'] 却变成完整的 清单内容
作者: mihonisizumi (中原岬マジ天使)   2015-07-08 17:01:00
因为你的 isinstance 判断只有套用在 movies而 movies 里面的 list 你没有再做这个判断
楼主: kobe770205 (joseph)   2015-07-08 18:42:00
但为什么到了c3就变成完整式了
作者: LiloHuang (十年一刻)   2015-07-08 19:15:00
因为 ['c1'] 在第二层循环时,你没有第三层循环去印它不考虑 stack 会炸掉,这个用递回简单写一下就可以了movies = ["a1","a2","a3",["b1","b2",["c1"]]]def foobar(m):for i in m:if isinstance(i, list): foobar(i)else: print ifoobar(movies)

Links booklink

Contact Us: admin [ a t ] ucptt.com