如果我有一个清单
\nx=[0.0,0.0,2.0,3.0,0.0,2.0]\nRun Code Online (Sandbox Code Playgroud)\n我基本上想计算列表中的项目数量,但只在前导零之后开始,我该怎么做?请记住,我想计算列表中间的零,而不是开头的零。
\n我\xe2\x80\x99已经尝试过这个:
\nn=0\nfor i in x:\n while i==0.0:\n break\n if i!=0.0:\n n=n+1\nRun Code Online (Sandbox Code Playgroud)\n但它没有\xe2\x80\x99t 得到4,这是我想要的输出,因为我只想包含2.0,3.0,0.0,2.0。
\n您可以使用itertools.dropwhile
from itertools import dropwhile
from collections import Counter
data = [0.0,0.0,2.0,3.0,0.0,2.0]
print(sum(1 for _ in dropwhile(lambda x: x == 0, data))) # 4
print(Counter(dropwhile(lambda x: x == 0, data))) # Counter({2.0: 2, 3.0: 1, 0.0: 1})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |