Python 板


LINE

如果一定要用for loop的話,在確定只有省略最後一次的情況下,我個人會比較 喜歡這種直接在後做一次的方式。 a = [1, 2, 3, 4, 5] last_index = len(a) - 1 for i in range(last_index): print(a[i], end=",") print(a[last_index]) 之所以要用個last_index,只不過是不想要進行兩次len(a)取長度而已,可省略 這個變數直接把last_index都寫成len(a) - 1就好,行數上更精簡一點。 比較重要的是不要直接for i in a而是改用index,這樣我們就可以避開必須判 讀哪一個元素是最後一個的問題,雖然也可以這麼寫: for i in a: if i == a[len(a) - 1]: print(i) else: print(i, end=",") 第二種寫法也可以改用index來處理,這在如果元素內容比對其實相對比較昂貴 的情況下更為理想: for i in range(len(a)): if i == len(a) - 1: print(a[i]) else: print(a[i], end=",") 總之這些寫法都不用在迴圈中指明最後一個元素是5,陣列a的內容可以隨意改 變而不用動到迴圈的code。 第一種寫法的好處是甚至不需要多加一個判斷在迴圈中,缺點是這種方法只能處 理陣列首尾有不同處理方式的情況,在中間的話就不好這麼處理了。 第二種寫法的缺點是迴圈裡需要持續做判斷元素內容,如果這個判斷相對昂貴( 比如是大字串或複雜的class),這樣寫就很蠢了,應當改為第三種的index處理方式 。而第二/三種寫法同樣的優點就是如果想變動的某些事情不只發生在首尾,則很容 易藉由增加if條件的方式來補充特例項目。 第二種寫法並非一無是處,因為如果我們的例外要求並不只是看index而是看元 素內容(舉例來說,如果是奇數我們就不加逗號,想要輸出312,5734,156,3這樣的東 西),而且元素內容不一定跟index有關的情況下,那麼當然就需要第二種寫法。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.160.70 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1575551148.A.271.html ※ 編輯: ddavid (114.36.160.70 臺灣), 12/05/2019 21:13:11
1F:推 s4028600: 只是因為我那篇在實驗各位解法的時候 發現我的列表和我 12/06 03:51
2F:→ s4028600: 的問題不一樣所以才在下面補充列表 實際上已經解決 不過 12/06 03:51
3F:→ s4028600: 有各種解法也很好 12/06 03:51
4F:推 s4028600: 你這個很好理解 雖然奇數不加逗號我想不出用在哪裡 目前 12/06 04:00
那只是舉例XD 實際上就是如果會按照每個元素內容不同有執行差異的情況啦XD
5F:→ s4028600: 只用在爬蟲就是了 12/06 04:00
※ 編輯: ddavid (111.250.169.33 臺灣), 12/06/2019 18:27:34







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP