今天刷题遇到了一个错误,记录一下。如下面的简单实例:
list1=[1,'two','three',4,5]
print(' '.join(list1))
TypeError: sequence item 0: expected str instance, int found
错因:list如果包含数字不能够直接转为字符串
解决:先将每个元素都转化为字符串,再进行操作
数字转化为字符串有两种方法,下面总结一下,并且对比下效率
数字转字符串
1.格式化字符串
常用的格式化字符串:
%d 整数
%f%F 浮点数
%e%E 科学计数
%g%G e 和%f/%E 和%F 的简写
%% 输出%
>>> "%d"%1230
'1230'
>>> "%f"%1.2334
'1.233400'
>>> "%6.2f"%1.2334
' 1.23'
2.str()函数
>>> str(100)
'100'
>>> str("1233.12")
'1233.12'
3.效率比较
from time import time
t1 = time()
a = range(10000000)
for i in a:
num = str(i)
t2 = time()
print("str用时:",t2-t1)
t3 = time()
for i in a:
num = "%d"%i
t4 = time()
print("格式化用时:",t4-t3)
str用时: 4.437833547592163 格式化用时: 3.6962287425994873
格式化用时更加短些