二、字元串與整數拼接速度對比(Python中的AI對比實驗)
完整程式碼如下:
# -*- coding: UTF-8 -*-
# Author: Perry
# @Create Time: 2020-04-06 14:55
import timeit
import numpy as np
def ints():
_ = "str" + str(12)
def ints_f():
_ = "str%d" % 12
def floats():
_ = "str" + str(12.33)
def floats_f():
_ = "str%f" % 12.33
def strs():
_ = "str" + "12.33"
def strs_f():
_ = "str%s" % "12.33"
if __name__ == '__main__':
repeat = 10
number = 100000
int_time = timeit.repeat('ints()', 'from __main__ import ints', repeat=repeat, number=number)
int_time = np.mean(int_time)
print("int_time: ", int_time)
int_f_time = timeit.repeat('ints_f()', 'from __main__ import ints_f', repeat=repeat, number=number)
int_f_time = np.mean(int_f_time)
print("int_f_time: ", int_f_time)
float_time = timeit.repeat('floats()', 'from __main__ import floats', repeat=repeat, number=number)
float_time = np.mean(float_time)
print("float_time: ", float_time)
float_f_time = timeit.repeat('floats_f()', 'from __main__ import floats_f', repeat=repeat, number=number)
float_f_time = np.mean(float_f_time)
print("float_f_time: ", float_f_time)
str_time = timeit.repeat('strs()', 'from __main__ import strs', repeat=repeat, number=number)
str_time = np.mean(str_time)
print("str_time: ", str_time)
str_f_time = timeit.repeat('strs_f()', 'from __main__ import strs_f', repeat=repeat, number=number)
str_f_time = np.mean(str_f_time)
print("str_f_time: ", str_f_time)
輸出結果:
int_time: 0.02541184720000001
int_f_time: 0.01889225879999996
float_time: 0.04497297539999997
float_f_time: 0.0266983679
str_time: 0.006410686699999979
str_f_time: 0.01752534760000002
結論:當有類型轉換的時候,使用 % 轉換更快;否則,若為str
,則用+
更快。