【问题标题】:Getting Python range() to recognise a decimal eg. 70.555555 [duplicate]让 Python range() 识别小数,例如。 70.555555 [重复]
【发布时间】:2015-01-24 19:50:51
【问题描述】:

使用 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 倍数,但由于每个数字之间的小数位数不同,这是不切实际的。

【问题讨论】:

  • 不要使用list作为变量名。
  • 我没有使用 list 作为变量名,这只是一个例子

标签: python python-3.x floating-point range decimal-point


【解决方案1】:

如果我理解得很好,您想检查number 是否介于xy 之间。

那么就用比较吧。以下与“number in range(x, y)”解决方案对整数的行为相同:

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

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

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

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

【讨论】:

  • 是的,这行得通,谢谢!
猜你喜欢
  • 2016-01-19
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 2017-08-03
相关资源
最近更新 更多