我有一个函数,它接受一个 float 列表并返回相同的 float 列表,除了它们在小数点后恰好有 4 位数字,作为字符串
目前很简单
for i in range(len(floats)): floats[i] = "%.4f" %floats[i]
哪个工作。
但是我可以使用 map 函数来做到这一点吗(因为 http://wiki.python.org/moin/PythonSpeed/PerformanceTips 说使用 map 更快)
我调用此函数数千次,从配置文件结果来看,它是占用更多时间的函数之一。
请您参考如下方法:
map 仅当您使用内置函数时才会更快(或者至少当我读到它时是这样;))。不过,您可以使用列表理解:
pattern = "%.4f"
floats = [pattern % i for i in floats]
请注意,map 和列表理解将创建一个新列表,而 for 循环不会。这可能是相关的。
根据您的应用程序的其余部分,如果可能,您应该在将数字添加到列表时格式化它们。
