我正在使用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)
如果我已经是int,python到底做什么?将它转换回int是浪费时间还是忽略int()语句
Tags:
我很确定Python不会浪费任何时间将
int
转换为int
。Python将检查该类型,如果它已经是一个int
类型,则只需保留它当Python创建新对象时,它必须分配内存并跟踪引用。因此,通过创建一个新对象进行不必要的转换,会使内存分配器和垃圾收集器额外工作,从而导致不必要的减速
至少在CPython中,Python实际上重新使用了最常见的整数。如果你计算
3 - 3
,你会得到0
,它实际上是与其他0
相同的对象注:我不会指望以上;它现在正好起作用,但依靠它可不是个好主意。但是,如果Python不辞辛劳地重用公共整数而不是分配新的整数,那么您就知道Python不会接受整数并毫无意义地重新分配它们
相关问题 更多 >
编程相关推荐