課程
/后端開發
/Python
/初識Python
L?=?['Adam',?'Lisa',?'Bart',?'Paul'] for?index,?name?in?zip(range(1,5),L): ????print?index,?'-',?name
2016-04-19
源自:初識Python 9-2
正在回答
哈哈哈,逗。
正好在看 Python的91個建議,?其中前兩個建議 就是 理解 Pythonic 概念 和 編寫 Pythonic 代碼。?
早餐吃完,今天也沒有工作安排。。。 那我就在 題主這個問題下 多多多多多多多的 啰嗦下吧??!
首先什么是 Pythonic???直接翻譯來就是 Python理念,Python風格。?呃。。。 到這里依然還是廢話, 那么什么又是 Python理念, Python風格呢? 書中是引用 Tim Peters 的 《The Zen of Python》(Python 之禪) 中所說:
????1 . 美勝丑,顯勝隱,簡勝雜,雜勝亂,平勝陡,疏勝密。???????????????????????? (這怪怪的翻譯。。)
????2 . 找到簡單問題的一個方法,最好是唯一的方法(正確的解決之道)。???? ?(道。。。逼格高有沒有。。)
????3 . 難以解釋的實現,源自不好的注意;如有非常棒的主意,他的實現肯定易于解釋。
至此Pythonic 概念安利完畢。。 (再次跳出,如果安利公司倒閉后,多年后的讀者看到這兒會不會費解。。)
然后什么是Pythonic 代碼? Python 命名規范什么的我就不說了, 這里只說我個人最喜歡的一點:
?充分理解并使用 Python 內置數據類型,內置函數,標準庫
好了,代碼說明。。。(回答問題時有本書在身邊,確實好,抄了這么多廢話 才到代碼,想想以往。。上來就是代碼):
L?=?[1,2,3,4,5] ##?非?Pythonic?代碼 length?=?len(L) i=0 while?i?<?length: ????do_sth_with(L[i]) ????i+=1 ???? ##?Pythonic?代碼 for?i?in?L: ????do_sth_with(i) ???? ##?解釋,充分利用了?Python?中關鍵字?in?和?iterable類型(list,tuple,dict,set?等等)的特性。 ##?這也可以算作我們上面所說的?Pythonic?第2點:?正確且唯一的方法!
##?換一塊代碼,呼應?充分理解,使用?Python?內置函數(BIF:?buit-in?function) ##?稍微修改下?題主的代碼,?以提高適應性,如下: L?=?['Adam',?'Lisa',?'Bart',?'Paul'] for?index,?name?in?zip(range(len(L)),L): ????print?index+1,?'-',?name??????##?此處用index?+1?來達到?題主想要從1開始的目的 ##?這就是沒有充分?使用?Python?的內置函數?enumerate(),?首先題主目的是打印列表的?index(index+1) ##?和對應的元素,?這個在Python的BIF中就有一個專門做這個得,題主沒有使用。 ##課程中也有,代碼如下: L?=?['Adam',?'Lisa',?'Bart',?'Paul'] for?index,?name?in?enumerate(L,1): ????print?index,?'-',?name ???? ##?我們對比下兩個代碼的最大不同:?第二行的?in?后面的那段: enumerate(L)??????????##?Pythonic zip(range(len(L)),L)????????????##?非?Pythonic ##?解釋,?其實能看出來肯定是第一個更簡單,大多數人之所以不愿意用,究其原因?無非就是?這個英文單詞 ##?enumerate?相對來說?不熟,?其實就這么一個單詞真的是不難,為什么大多數人?望而卻步,退而求自己相對 ##?較為熟悉的?zip,?range,?len?等單詞簡單,邏輯復雜的解法呢(我擦好長的賓語。。。)??難道單單就因為 ##?一個單詞??我猜不是,?我覺得是(我要開始胡謅啦?。。?我們缺少主義的大旗??!?此時我祭出 ##?Pythonic主義,?大家是不是覺得?enumerate?也沒有那么?面目可憎了。。?哈哈
好吧, 就到這兒吧, 只是一個課程問答, 分分鐘就會被埋沒在 后來者的提問中。。 我也是閑。。
哦, 還有個 enumerate 的中文翻譯 "枚舉" , 是不是還有些音譯的感覺。 這個翻譯真不錯,難道也是 日本傳過來的, 現代漢語反倒被日語反哺 。。 呃 又跑題了。。 算了到這兒吧,拿快遞去了。
W_Qing
清波 回復 W_Qing
W_Qing 回復 清波
慕容1501408
題主是指
range(1,?len(L)+1)
這句嗎?這句主要是從代碼可用性上考慮的,不然后換個list這個函數就不起作用了
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-09-13
哈哈哈,逗。
2016-04-19
正好在看 Python的91個建議,?其中前兩個建議 就是 理解 Pythonic 概念 和 編寫 Pythonic 代碼。?
早餐吃完,今天也沒有工作安排。。。 那我就在 題主這個問題下 多多多多多多多的 啰嗦下吧??!
首先什么是 Pythonic???直接翻譯來就是 Python理念,Python風格。?呃。。。 到這里依然還是廢話, 那么什么又是 Python理念, Python風格呢? 書中是引用 Tim Peters 的 《The Zen of Python》(Python 之禪) 中所說:
????1 . 美勝丑,顯勝隱,簡勝雜,雜勝亂,平勝陡,疏勝密。???????????????????????? (這怪怪的翻譯。。)
????2 . 找到簡單問題的一個方法,最好是唯一的方法(正確的解決之道)。???? ?(道。。。逼格高有沒有。。)
????3 . 難以解釋的實現,源自不好的注意;如有非常棒的主意,他的實現肯定易于解釋。
至此Pythonic 概念安利完畢。。 (再次跳出,如果安利公司倒閉后,多年后的讀者看到這兒會不會費解。。)
然后什么是Pythonic 代碼? Python 命名規范什么的我就不說了, 這里只說我個人最喜歡的一點:
?充分理解并使用 Python 內置數據類型,內置函數,標準庫
好了,代碼說明。。。(回答問題時有本書在身邊,確實好,抄了這么多廢話 才到代碼,想想以往。。上來就是代碼):
好吧, 就到這兒吧, 只是一個課程問答, 分分鐘就會被埋沒在 后來者的提問中。。 我也是閑。。
哦, 還有個 enumerate 的中文翻譯 "枚舉" , 是不是還有些音譯的感覺。 這個翻譯真不錯,難道也是 日本傳過來的, 現代漢語反倒被日語反哺 。。 呃 又跑題了。。 算了到這兒吧,拿快遞去了。
2016-04-19
題主是指
這句嗎?這句主要是從代碼可用性上考慮的,不然后換個list這個函數就不起作用了