在计算大于和小于列表中某些值的值时,会跳过某些数字

问题描述

我在计算大于 start (初始 0) 且小于 end (初始 10)的值的数量时遇到问题> 列表中的某些值。

该列表包含 12 500 个浮点数,范围为 0 - 110。我想计算列表中有多少个数字在 0-10 范围内,然后 10-20,20-30,(...),100-110

我已经实现了一个 for 循环,里面有一个列表理解:

all_nums = [] # contains 12_500 float numbers

nums_counted = []
start = 0
end = 10
for x in range(11):
    count = len([x for x in to_int if start < x < end])
    nums_counted.append(count)
    start = start + 10
    end = end + 10

问题是 len(all_nums) = 12500sum(nums_counted) = 12492,它们也应该等于 12 500。

我不知道我做错了什么,那8个数字在哪里消失

解决方法

你可以做 int 除以 10


> from collections import Counter
> 
> l = [0.0,0.1,6.1,11.4,19.2,20.9,40.1]
> 
> d = Counter()
> 
> for val in l:
>     binn = val//10
>     d[binn] += 1
> 
> print(l) 
> print(d.items())
[0.0,40.1]
dict_items([(0.0,3),(1.0,2),(2.0,1),(4.0,1)])

在这种情况下 0.0 --> 0-10 范围有 3 个计数

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...