Python 板


LINE

※ 引述《nissekl (METALLICA-JAMES)》之銘言: : 標題: [問題] 如何比較list裡面各項數字的大小並重組? : 時間: Wed Jul 31 16:02:10 2013 : : 不好意思小弟不材又要來打擾各位神手大大了 : : 因為最近一直在用list來寫東西, 所以都是問有關list的問題 : 我現在出現的問題: : : s = [10.0, 31.0, 25.0, 77.0, 66.0] : t = [7.0, 42.0, 45.0, 49.0, 60.0] : : 我想讓這兩個list的每一個相對的元素去比大小 : 然後比較小的值去組成一個新的list : : 例如:10 和 7比較 7比較小 7留下 : 31 和 42比較 31比較小 31留下 : ....已此類推 : 最後會組成新的list u : : u = [7.0, 31.0, 25.0, 49.0, 60.0] : : 請問要達到這個目的要怎麼寫呢? : : -- :



※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.114.95.170 : → sbrhsieh:感覺你都沒有認真去想。 07/31 16:10 : → sbrhsieh:u=[a if a < b else b for a, b in zip(s, t)] 07/31 16:11 : → nissekl:非常感謝你....因為我開始碰python不到兩週.我會的東西 07/31 16:36 : → nissekl:真的很少...加上我先前真的沒學過什麼程式語言... 07/31 16:37 : → nissekl:python 算我第一個碰的語言..所以很多東西真的完全不知道 07/31 16:38 : → nissekl:怎用...像連一樓寫給我的式子..我也是這兩天第一次見到 07/31 16:40 : → nissekl:我的參考書think python的list章節沒出現過==|| 07/31 16:42 : → nissekl:真的很不好意思<(_ _)> 07/31 16:43 : → os653:新手不要用那種寫法,用最通用的寫法就好了 07/31 17:30 : → os653:s = [10.0, 31.0, 25.0, 77.0, 66.0] 07/31 17:34 : → os653:t = [7.0, 42.0, 45.0, 49.0, 60.0] 07/31 17:34 : → os653:u = [None, None, None, None, None] 07/31 17:34 : → os653:for i in range(len(s)): 07/31 17:34 : → os653: if s[i] < t[i]: 07/31 17:34 : → os653: u[i] = s[i] 07/31 17:34 : → os653: else: 07/31 17:34 : → os653: u[i] = t[i] 07/31 17:35 : → os653:一樓那種寫法等寫久了自然就會去用了,又快又方便 07/31 17:36 : → sbrhsieh:那寫C就好了 07/31 18:07 : → darkgerm:一樓不要這麼兇~ 每個人總有剛開始學的時候^^ 07/31 19:24 : → darkgerm:我建意原 PO 問問題時講一下你曾做過的嘗試 07/31 19:25 : → darkgerm:不要讓人覺得你是什麼都沒想過就來求答案 07/31 19:25 抱歉,我沒有責怪的意思或是要引戰。 我只是從原作者發過的帖子嗅到一點態度或學習方式上面似乎不太對的味道。 假如原作者只是想要完成手上被交付的工作,隨便挑了 Python 來做,只想交差 了事的話,那最好的方式就是找(交)一位懂 Python 的朋友,你告訴他需求,由 他幫你寫 code 來解決。 如果你希望 Python 成為你的一部分,那麼你在上一篇獲得你滿意的答覆時(就是 你說了聲謝謝了),你就應該是自己去讀過並搞懂 list comprehension 的部分。 如果你先搞懂了 for statement(+ tuple unpacking) 與內建的 zip function, 那麼搞懂 list comprehension 與消化前一篇回覆你的做法應不成問題。 真沒有辦法理解的話,你可以在文中提出你沒有搞懂的部分,待有心人與你進一步 討論。那麼就不會有再發問這一篇,然後得到一個非常相近的答案。 我提到的做法是有用到 2.5 才加入的 conditional expression,在不懂這個 的情況下,若你真的弄懂前一篇給你的寫法,好歹也要能自己拼出這樣的做法( 先不管效率上的考量): u = [(b, a)[a < b] for a, b in zip(s, t)] 推文部分,我口氣是不太好,我做錯了。 我想表達我的意見是不管是不是初學 Python(programming)都不應該排斥像 list comprehension 這種算是 Python 的特性之一的部分,至少我覺得這種東西 並不像 Ruby 中一些黑魔法般的寫法來得矯情,它並不深奧到可學可不學的地步, 反而是每一個 Python programmer 都很熟悉的東西,常用會話的一部分。 使用 list comprehension 不單單只是 code 比較短,對多數的 Python programmer 來說它的語意是比較清楚,比起一大段類 C code,在可讀性上也比較好。 這有點像講「我哥」比講「我父母的另一個年紀比我大的兒子」來得好讀,雖然 你必須要再學習「哥哥」的定義。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.104.144
1F:推 timTan:仔細一看,問的兩個問題的確是太像了。 07/31 20:52
2F:→ timTan:大家都要再加油~ 07/31 20:52
3F:→ ck574b027:不過的確忘記說明那叫list comprehension 07/31 20:57
4F:→ sbrhsieh:他在前一個問題也沒問,以為他自己可以找到相關資訊 07/31 21:38
5F:→ sbrhsieh:大概原作者太害羞,不敢多問 07/31 21:39
6F:→ Microscft:python愈來愈多新手是好事 看看隔壁的perl... 08/01 09:09







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燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP