我一直在学习learnpython.org上的教程,到目前为止,我发现一切都相对简单。
当我谈到关于列表理解的问题时,我已经陷入困境。我掌握它是如何工作的。以下是提出的问题:
使用列表推导,创建一个名为“newlist”的新列表 列表“数字”,仅包含来自的正数 列表,整数。
提供的代码:
numbers = [34.6, -203.4, 44.9, 68.3, -12.2, 44.6, 12.7]
newlist = []
print newlist
我对这个问题的回答如下:
newlist = [x for x in numbers if x > 0]
这将从数组中返回正确的数字,但每个项目大约为15 dp。我如何得到整数而不是所有小数位。
例如,预期的答案是:
[34,44,68,44,12]
但是我最终得到了:
[34.600000000000001,44.899999999999999,68.299999999999997,44.600000000000001,12.699999999999999]
如果有人能够解释我出错的地方,那么我们将非常感激。
干杯,
杰米
答案 0 :(得分:4)
newlist = [int(x) for x in numbers if x > 0]
这使得数字朝零。正数将向下舍入,负数将向上舍入。如果要舍入到最接近的整数:
newlist = [round(x) for x in numbers if x > 0]