我想转换一个整数
my_integer=1412323
到字符列表
['1','4',...]
我能想到的最快的方法是
list(str(my_integer))
是否有反对这样做的pythonic?
答案 0 :(得分:5)
是的,这是一种完全好的方法!如果您只需要遍历字符串的每个字符,尽管您不需要转换为30 31 1 1082485116
,因为list
是可迭代的。因此,您可以这样做:
str
答案 1 :(得分:2)
它确实是非常Python化的,而且速度非常快。让我们将其与另一种方法进行比较。将其与列表理解(也被认为是pythonic)进行比较:
%%timeit
[x for x in str(my_integer)]
每个循环883 ns±32.8 ns(平均±标准偏差,共运行7次,每个循环1000000次)
有了您的建议,我们得到了:
%%timeit
list(str(my_integer))
每个循环743 ns±33.2 ns(平均±标准偏差,共运行7次,每个循环1000000次)
作为一般准则,我会说Python方式在大多数时间都是简洁且无循环的。而且,如果您想确定的话,可以使用%% timeit和其他“经典”方法对其进行基准测试。