让Python range()识别小数,例如。

Getting Python range() to recognise a decimal eg. 70.555555

本问题已经有最佳答案,请猛点这里访问。

使用python 3.4,我有一个列表,其中包含8位或更多小数位的数字(例如-72.2373909452和175.33903215),我需要一种方法根据它们的数字将它们分开。

原始代码如下:

1
2
3
4
for number in list:
    range_list=[]
    if number in range(x, y):
        range_list.append(number)

但由于明显的原因,它不起作用,也不会在新列表中添加任何数字。

我也考虑过先乘以数字,然后在十个因子之间取一个区间数,但是由于每个数字的小数位数不同,这是不实际的。


如果我理解的很好,你要检查number是否在xy之间。

那就用比较吧。下面的行为与"number in range(x, y)解具有整数的行为相同:

1
2
if x <= number < y:
    range_list.append(number)

即使number是一个整数,这种比较也比涉及range的解决方案更清晰、更可能更快。

另一方面,您应该在for循环之外定义range_list,否则,您将最终清空每个循环的列表:

1
2
3
4
range_list=[]
for number in my_list:
    if x <= number < y:
        range_list.append(number)