作者harold1018 ( )
看板Python
標題[問題] countif in a list?
時間Mon Aug 15 01:14:50 2022
不好意思打擾大家
想請教一下
my_list = [0,1,2,3,4]
要怎麼樣算出裡面>2的元素有幾個 (兩個)
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.240.229 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1660497292.A.043.html
1F:推 papple23g: sum(n>2 for n in my_list) 08/15 01:59
2F:→ sating00: 迴圈算 08/15 09:40
3F:推 venomsoul: count = 0 08/15 11:25
4F:→ venomsoul: for i in my_list: 08/15 11:25
5F:→ venomsoul: if i > 2: 08/15 11:25
6F:→ venomsoul: count += 1 08/15 11:25
7F:→ venomsoul: return count 08/15 11:25
8F:推 venomsoul: 喔return那行多的,這不是函數 08/15 11:29
9F:→ IAMPF: len([m for m in my_list if m > 2]) 08/15 11:51
10F:推 refusekkk: 推樓上IAMPF的做法 08/15 13:46
11F:推 dati: IAMPF 的做法挺漂亮的 08/15 14:46
12F:推 lycantrope: 以效率來說還是1F比較好 08/15 15:38
13F:→ mikapauli: sum(map((2.).__lt__, my_list)) 08/15 17:05
14F:→ mikapauli: 啊和1F一樣意思 08/15 17:05
15F:推 AmigoSin: 最Pythonic推IAMPF 08/16 00:12
16F:推 dosiris: my_list.count(2) 08/18 13:28
17F:→ dosiris: Sorry 沒注意到是大於2 08/18 13:29
18F:推 dosiris: 能否請教為何1F的寫法不必加方括弧? 08/18 13:35
19F:推 dosiris: 謝謝 08/18 13:36
20F:推 lycantrope: n>2 for n in my_list 會回傳一個iterator 而sum本身 08/18 18:03
21F:→ lycantrope: 對應任何可以iterable的東西 08/18 18:03
22F:推 dosiris: 了解 所以sum()可以接受iterator 但len()不行 謝謝啦 08/18 19:11