作者kobe770205 (fannx)
看板Python
标题[问题] for 回圈的用法
时间Wed Jul 8 16:46:34 2015
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'] 却变成完整的 清单内容
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.255.80
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1436345197.A.153.html
1F:→ mihonisizumi: 因为你的 isinstance 判断只有套用在 movies 07/08 17:01
2F:→ mihonisizumi: 而 movies 里面的 list 你没有再做这个判断 07/08 17:01
3F:→ kobe770205: 但为什麽到了c3就变成完整式了 07/08 18:42
4F:推 LiloHuang: 因为 ['c1'] 在第二层回圈时,你没有第三层回圈去印它 07/08 19:15
5F:→ LiloHuang: 不考虑 stack 会炸掉,这个用递回简单写一下就可以了 07/08 19:15
6F:→ LiloHuang: movies = ["a1","a2","a3",["b1","b2",["c1"]]] 07/08 19:15
7F:→ LiloHuang: def foobar(m): 07/08 19:15
8F:→ LiloHuang: for i in m: 07/08 19:15
9F:→ LiloHuang: if isinstance(i, list): foobar(i) 07/08 19:16
10F:→ LiloHuang: else: print i 07/08 19:16
11F:→ LiloHuang: foobar(movies) 07/08 19:16