加了點註釋,自己看吧,下次不要用圖片了,直接拷貝代碼吧
#?-*-?coding:cp936?-*-def?flatten(?nested?):
try:
#這裏首先檢查nested是否可叠代,不可叠代則拋出TypeError
for?sublist?in?nested:
#可叠代,那麽遞歸,檢查sublist是否還可以叠代
for?element?in?flatten(?sublist?):
#這裏的element必定不可叠代,已經完全展開,因此使用yield輸出,返回上層
#如果sublist是不可叠代的,那麽flatten(?sublist?)返回的生成器就只有壹個數據,就是sublist
#yield?element也相當於yield?sublist
#否則的話,flatten(?sublist?)返回的是展開的數據
yield?element
except?TypeError:
#nested不可叠代,直接返回上層即可
yield?nested