gpt4 book ai didi

Python 重新转换为相同数据类型的时间

转载 作者:行者123 更新时间:2023-12-01 05:08:16 24 4
gpt4 key购买 nike

我正在使用 Python 迭代大量未知数据类型(主要是整数)。所以为了规范数据类型,我通常会将变量转为int。所以我的问题是,如果列表很大,将 int 转换为 int 是否需要额外的时间?更正式地考虑以下代码:

# data is a huge list which consists of int, float etc.
modifieddata=[]
for i in data:
modifieddata.append(int(i)+12)

如果 i 已经是 int,那么 python 到底会做什么?将其转换回 int 是否会浪费时间,或者只是忽略 int() 语句?

最佳答案

我非常确定 Python 不会浪费任何时间将 int 转换为 int。 Python 将检查类型,如果它已经是 int 将不理会它。

当Python创建新对象时,它必须分配内存并跟踪引用。因此,通过创建新对象进行不必要的转换会使内存分配器和垃圾收集器额外工作,从而导致不必要的速度减慢。

至少在 CPython 中,Python 实际上重复使用了最常见的整数。如果计算 3 - 3,您将得到 0,它实际上与其他 0 是同一个对象。

x = 0
y = 3 - 3
assert x is y # they are the same object!

注意:我不会指望以上内容;它现在正好可以工作,但依赖它并不是一个好主意。但是,如果 Python 不厌其烦地重复使用常见整数而不是分配新整数,那么您就知道 Python 不会采用整数并毫无意义地重新分配它们。

关于Python 重新转换为相同数据类型的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24680730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com