作者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/m.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