假设我有一些数字变量将在整个代码中使用,例如str
和class Nums:
a = 1 # stored as int
b = '2' # stored as str
print(int(Nums.b) + 5) # 7
print(str(Nums.a) + 'Hello') # 1Hello
个对象。所以我想知道,我应该使用哪种类型来存储它们?
以下是一个例子:
int
如您所见,存储和示例用途有两种选择。但是用法不会像在这里那样定义。例如,我将迭代类变量并将它们连接在一个字符串中,并计算它们的产品。我应该将它们存储为str
并在我需要连接时转换为str
,还是int
并在乘法之前将它们转换为%timeit
?
使用IPython int
的一些简短研究表明,性能大致相同,str
到In [3]: %timeit int('56')
The slowest run took 12.92 times longer than the fastest. This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 360 ns per loop
In [4]: %timeit str(56)
The slowest run took 8.36 times longer than the fastest. This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 353 ns per loop
的速度要快一点:
str
我希望这个结果,因为__str__
调用真的只是调用对象的UserDefaults
方法,而将字符串作为数字读取可能会更复杂。有什么真正的区别,背后的原因是什么?
我正在谈论Python 3.5,特别是
答案 0 :(得分:1)
如果你的程序使用数值,你当然应该将它们存储为int
类型。数字类型几乎总是比字符串类型更快,即使您的用例意味着字符串表示更快,其他好处也是值得的。仅举几例: