This question already has answers here:
Python: range function for decimal numbers
                                
                                    (4个答案)
                                
                        
                        
                            How to use a decimal range() step value?
                                
                                    (33个答案)
                                
                        
                                5年前关闭。
            
                    
使用Python 3.4,我有一个列表,其中包含数字,这些数字具有8位或更多的小数位(例如-72.2373909452和175.33903215),我需要一种根据其数字将它们分开的方法。

原始代码如下所示:

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


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

我还考虑过先将数字相乘,然后才将范围数字乘以10,但是由于每个数字之间的小数位数不同,因此不可行。

最佳答案

据我了解,您想检查number是否在xy之间。

然后使用比较即可。下面的行为与“ number in range(x, y)”解决方案具有的整数相同:

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


即使number是整数,这种比较也比涉及range的解决方案更清晰,而且很有可能更快。

附带说明,您应该在range_list循环之外定义for,否则最终将在每个循环中清空列表:

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

关于python - 获取Python range()以识别小数,例如70.555555 ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27149930/

10-16 20:31