讀Python基礎教程(第二版)后看到了這么一個東西,就是利用遞歸遍歷嵌套結構中的元素。
上代碼:
#encoding:UTF-8 def flatten(nested): try: #不要迭代類似字符串的對象: try: nested+'' except TypeError: pass else: raise TypeError for sublist in nested: for element in flatten(sublist): yield element except TypeError: yield nested print list(flatten(['foo', ['bar', ['baz'], 123]]))
感覺這個方法十分神奇,不得不說在Python語言中經常會出現一些要人意想不到的東西,比如這個,判斷一個變量是否為 字符型 采用 element+"" 的方式,並采用TypeError 的異常檢查,實現十分新穎。
#不要迭代類似字符串的對象: try: nested+'' except TypeError: pass else: raise TypeError
該段代碼 如果字符類型則報異常 TypeError, 如果不是字符則自身捕獲異常。