python-3.x - 在 Python3 中如何使用一些浮点数和 range() 进行映射
问题描述
我有以下代码:
circle_areas = [3.56773, 5.57668, 4.00914, 56.24241, 9.01344, 32.00013]
result = list(map(round, circle_areas, range(2, 7)))
print(result)
输出:
[3.57, 5.577, 4.0091, 56.24241, 9.01344]
但是,如果我将一个值传递给range()
喜欢 result = list(map(round, circle_areas, range(2)))
它的输出[4.0, 5.6]
,result = list(map(round, circle_areas, range(3)))
它会输出[4.0, 5.6, 4.01]
并继续。
我想知道为什么以及它是如何表现的。
解决方案
map
circle_areas
可以将多个可迭代对象(在您的情况下和生成器)中的连续对(三元组等)元素range
映射到您正在映射的函数(只要您正在映射的函数接受该数量的参数 - 在您的情况下为 2) . 进行操作时:
result = list(map(round, circle_areas, range(2, 7)))
你得到的结果是一样的:
result = [round(ar, prec) for ar, prec in zip(circle_areas, range(2,7)]
因此,当您将范围生成器限制为range(2)
(值 0->1)result
时,将仅包括circle_areas
连续舍入到 0 和 1 个小数位的第一个和第二个值。
推荐阅读
- c++ - 为什么 arr[i++] vs arr[i]++ 这样做?
- sqlite - 布尔变量更新在 SQLite 中表现异常
- reactjs - 反应:将按钮值与输入文本连接起来
- ios - Swift UI 自动从初始屏幕导航到另一个屏幕,并带有延迟时间
- ios - 在没有 Xcode 的情况下制作 Cocoa App,例如:使用 VIM 进行编辑和 Swift 编译器
- image - 在 react-native 中,我如何在 ios 和 android 的图像上添加水印
- java - 在android上拆分逗号和一一显示值
- reactjs - 如何在 React Native 中在没有 setState 的情况下更改点击视图区域
- vba - 权限被拒绝:GetObject("IIS://" & strServer & "/w3svc/4/ROOT")
- python - 如何修复意外分配的内置函数名称?