看板 Python 關於我們 聯絡資訊
※ 引述《apua (左右開攻)》之銘言: : 我最近學到在 python 上使用如下的語法 : (element1) if (condition) else (element2) : eg1: : ... : 0 0 0 0 0 1 0 0 0 0 : eg2: : [0, 0, 0, 0, 0, 1, 0, 0, 0, 0] : 這種語法真的很好用, 而且跟英文文法也蠻像的 : (抱歉好像有點扯遠了) : 我想請問一下, C++ 是否也有類似這種語法呀? : 還是說應該是在別的程式語言有類似的語法? 這是 Python 的 conditional expression。 作為 Pythonista,我很想說對對對,其它語言「也有」這種表示式。 不過摸著良心講,conditional expression 是從 C 學過來, 而且還是很晚 (2.5) 才加進來的語言元素: http://docs.python.org/whatsnew/pep-308.html C 一直都有 conditional expression: var = (condition) ? [var for true] : [var for false] 順序和 Python 定義的不太一樣,我常常忘記;Python 的比較好記。 在 Python 裡, 以下的 expression 常常被用來當作 conditional expression 的代用品: condition and var_for_true or var_for_false 它可以「作出」conditional expression 的效果,不過不是等價的! 這個 logical construct 如果遇到 var_for_true 評估為假的時候就會破功。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 164.107.248.238 ※ 編輯: yungyuc 來自: 164.107.248.238 (03/21 20:31) ※ 編輯: yungyuc 來自: 164.107.248.238 (03/21 20:32)
xcycl:老實說, 這兩種用法是不大一樣 ... 03/22 01:08
xcycl:比起 C, list comprehension 倒是更貼切 ... 03/22 01:10
apua:雖說是不大一樣, 但這正是我需要的答案, 感激 03/28 13:11
yungyuc:原作寫的第一種是 conditional expression 03/29 03:57
yungyuc:第二種是 list comprehension 03/29 03:57
yungyuc:我只想回第一種,不過忘了刪一些引文 Orz 03/29 03:58