在计算大于和小于列表中特定值的值的数量时会跳过某些数字
Some numbers are skipped in counting number of values greater and less than certain values in a list
我在计算大于 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) = 12500
和sum(nums_counted) = 12492
,它们也应该等于12 500。
我不知道我做错了什么,那8个数字在哪里消失了
你可以用整数除以 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, 0.1, 6.1, 11.4, 19.2, 20.9, 40.1]
dict_items([(0.0, 3), (1.0, 2), (2.0, 1), (4.0, 1)])
在这种情况下 0.0 --> 0-10 范围有 3 个计数
我在计算大于 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) = 12500
和sum(nums_counted) = 12492
,它们也应该等于12 500。
我不知道我做错了什么,那8个数字在哪里消失了
你可以用整数除以 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, 0.1, 6.1, 11.4, 19.2, 20.9, 40.1]
dict_items([(0.0, 3), (1.0, 2), (2.0, 1), (4.0, 1)])
在这种情况下 0.0 --> 0-10 范围有 3 个计数