[问题] countif in a list?

楼主: harold1018 ( )   2022-08-15 01:14:50
不好意思打扰大家
想请教一下
my_list = [0,1,2,3,4]
要怎么样算出里面>2的元素有几个 (两个)
感谢!
作者: papple23g (逆道者)   2022-08-15 01:59:00
sum(n>2 for n in my_list)
作者: sating00 (sating00)   2022-08-15 09:40:00
循环算
作者: venomsoul (不怕太太)   2022-08-15 11:25:00
count = 0for i in my_list:if i > 2:count += 1return count喔return那行多的,这不是函数
作者: IAMPF (PF)   2022-08-15 11:51:00
len([m for m in my_list if m > 2])
作者: refusekkk (另类3k)   2022-08-15 13:46:00
推楼上IAMPF的做法
作者: dati (水脑)   2022-08-15 14:46:00
IAMPF 的做法挺漂亮的
作者: lycantrope (阿宽)   2022-08-15 15:38:00
以效率来说还是1F比较好
作者: mikapauli (桜花)   2022-08-15 17:05:00
sum(map((2.).__lt__, my_list))啊和1F一样意思
作者: AmigoSin (JohnWall)   2022-08-16 00:12:00
最Pythonic推IAMPF
作者: dosiris (希望大家开心)   2022-08-18 13:28:00
my_list.count(2)Sorry 没注意到是大于2能否请教为何1F的写法不必加方括号?谢谢
作者: lycantrope (阿宽)   2022-08-18 18:03:00
n>2 for n in my_list 会回传一个iterator 而sum本身对应任何可以iterable的东西
作者: dosiris (希望大家开心)   2022-08-18 19:11:00
了解 所以sum()可以接受iterator 但len()不行 谢谢啦

Links booklink

Contact Us: admin [ a t ] ucptt.com