python - 将字符串转换为 int 或 inverse 更有效?

标签 python string int type-conversion performance

我目前正在编写一个脚本,在某些时候需要比较两个不同来源/输入提供给脚本的数字。一种来源以整数形式提供数字,一种来源以字符串形式提供数字。我需要比较它们,所以我需要对整数使用 str() 或对字符串使用 int()

假设转换量相等,将字符串转换为整数效率更高还是相反?

最佳答案

$ python -m timeit "int('92184') == 92184"
1000000 loops, best of 3: 0.482 usec per loop
$ python -m timeit "str(92184) == '92184'"
1000000 loops, best of 3: 0.241 usec per loop

好了,您应该将整数转换为字符串并进行比较。请注意,如果您想查看它们是否相等,这才有效。如果你想找出哪个更大,这是行不通的,你应该转换为 int

通过预先生成 1000 个介于 -1'000'000 和 1'000'000 之间的随机数来扩展上述测试,得出大致相同的结果:使用 int 时为 579 usec,而使用 336 usec使用 str 时。

请注意,如评论中所述,这很可能是过早的优化。 这意味着您应该首先考虑可能影响您编码方式的其他注意事项,例如可读性和功能性,并且当您的脚本完成时,如果它很慢,请使用一个profiler并找出您应该将优化工作的重点放在哪里。

关于python - 将字符串转换为 int 或 inverse 更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687183/

相关文章:

Python 从字典列表中获取最大值和最小值

c++ - 将多个字段合并为一个字段

java - 如何将 Double 中的秒数转换为两个 int 秒数和毫秒数?

java - 转换为内部操作顺序

python - 从列表中删除符合条件的第一个匹配项

python - 使用积分导出 CDF 的准确性

python - 从 python 中的缩进字符串创建计数数组

c++ - 字符串类中不区分大小写的 find() 方法

python限制重复字母

java - 从字符串解析 int 会产生错误的结果