關於《Head First Python》一書中print_lol()函數的思考 在《Head First Python》第一章中,講述到Python處理複雜數據(以電影數據列表為例),首先將電影數據創建為Python列表,由於Python的變數標識符沒有類型,列表中的每一個數據項可以是任何類型的數 ...
關於《Head First Python》一書中print_lol()函數的思考
在《Head First Python》第一章中,講述到Python處理複雜數據(以電影數據列表為例),首先將電影數據創建為Python列表,由於Python的變數標識符沒有類型,列表中的每一個數據項可以是任何類型的數據,甚至可以是另外一個列表,並且可以無限嵌套。下麵開始print()和print_lol()的表演。
1 列表 movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91, 2 3 ["Graham Chapman", 4 5 ["Michael Palin", "John Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]]]
step1(使用數據偏移量進行列表內數據的精準查找):
1 print(movies[4][1][3])
輸出結果為:
step2(使用一層print()對整個列表進行輸出):
1 print(movies)
輸出結果為:
step3(使用print()加上一層for迴圈對整個列表進行輸出):
1 for i in movies: 2 print(i)
輸出結果為:
step4(使用print()加上兩層for迴圈加上一個if else對整個列表進行輸出):
1 for i in movies: 2 if isinstance(i,list): 3 for j in i: 4 print(j) 5 else: 6 print(i)
輸出結果為:
step5(使用print()加上三層for迴圈加上兩個if else對整個列表進行輸出):
1 for i in movies: 2 if isinstance(i,list): 3 for j in i: 4 if isinstance(j,list): 5 for k in j: 6 print(k) 7 else: 8 print(j) 9 else: 10 print(i)
輸出結果為:
step6(多層嵌套實在是太麻煩了,試試構造函數然後遞歸,祭出今天的重場戲print_lol()):
1 首先定義函數: 2 def print_lol(the_list): 3 for i in the_list: 4 if isinstance(i,list): 5 print_lol(i) 6 else: 7 print(i) 8 9 然後使用print_lol()來對movies列表進行輸出,即print_lol(movies) 10 輸出結果為:
今天加班太晚了,有點累了,那麼就將關於print_lol()函數不斷趨於完善的過程的思考放在明天的博客中,要努力奮鬥,同時晚安好夢。