Re: [問題] 如何去除迴圈後多餘的東西

看板Python作者 (謬客)時間5年前 (2019/12/05 15:02), 編輯推噓6(608)
留言14則, 4人參與, 5年前最新討論串2/8 (看更多)
講解一下 list comprehension res = [i.get("name") for i in a] 等同於 res = [] for i in a: temp = i.get("name") res.append(temp) 其實就是map的機制 任何可以 iteration 的東西 可以使用這個機制做一些處理 例如說 [f"Hello, {i}" for i in ["Jack", "Mary"]] 除了map 還可以做filter # 輸出100以內的偶數 [i for i in range(100) if i%2==0] # 輸出字串裡面有Doctor的字串 [i for i in ["Doctor X","Doctor Y", "teacher"] if "Doctor" in i] 再來更多變化 # 輸出100以內的偶數 並且如果小於50的值都設為0 [i if i > 50 else 0 for i in range(100) if i%2==0] # 99乘法表 [f"{i}X{j}={i*j}" for i in range(1,10) for j in range(1,10)] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.65.79 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1575529336.A.38B.html

12/05 19:18, 5年前 , 1F
推 list comprehension
12/05 19:18, 1F

12/06 04:19, 5年前 , 2F
倒數第二個可以講解一下邏輯順序嗎 越想越亂
12/06 04:19, 2F

12/06 04:43, 5年前 , 3F
我想應該是將1到100 loop到i 然後條件1 i餘數等於0
12/06 04:43, 3F

12/06 04:44, 5年前 , 4F
條件2 i>50 不然就打印0
12/06 04:44, 4F

12/06 05:05, 5年前 , 5F
主要是好奇if else for 擺放位置的差別
12/06 05:05, 5F

12/06 18:29, 5年前 , 6F
樓上,if else跟for沒有相關性,要分開看
12/06 18:29, 6F

12/06 18:30, 5年前 , 7F
a if b else c近似為C++裡面的b ? a : c(注意順序)
12/06 18:30, 7F

12/06 18:31, 5年前 , 8F
b成立的話就a,否則就c
12/06 18:31, 8F

12/06 18:32, 5年前 , 9F
那一行難懂是因為必須要知道語法parse的優先順序,如果能
12/06 18:32, 9F

12/06 18:33, 5年前 , 10F
加上括號就會比較好讀了
12/06 18:33, 10F

12/06 18:33, 5年前 , 11F
我個人寫到這些多個邏輯式、運算子或語法互套的情況都習慣
12/06 18:33, 11F

12/06 18:34, 5年前 , 12F
很詳盡加括號表示解讀順序,不然有時自己回頭看都會花掉XD
12/06 18:34, 12F

12/06 20:12, 5年前 , 13F
真的不知道從那邊開始判讀
12/06 20:12, 13F

12/06 20:12, 5年前 , 14F
*哪
12/06 20:12, 14F
文章代碼(AID): #1TwAjuEB (Python)
文章代碼(AID): #1TwAjuEB (Python)