在list(str(my_integer))中进行两次类型转换是否为pythonic?

时间:2019-01-25 13:52:57

标签: python

我想转换一个整数

my_integer=1412323

到字符列表

['1','4',...]

我能想到的最快的方法是

list(str(my_integer))

是否有反对这样做的pythonic?

2 个答案:

答案 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和其他“经典”方法对其进行基准测试。