有谁知道我用来改变x列表的神奇之处:
x = [1,2,3,4,5,11]
进入y列表?
y = ['01','02','03','04','05','11']
先谢谢大家帮助我...
答案 0 :(得分:37)
您可以使用列表推导(Python 2.6 +):
y = ["{0:0>2}".format(v) for v in x]
或者2.6之前的Python:
y = ["%02d" % v for v in x]
编辑:错过了你想要零填充的事实......
答案 1 :(得分:17)
您想使用内置的map
功能:
>>> x = [1,2,3,4,5]
>>> x
[1, 2, 3, 4, 5]
>>> y = map(str, x)
>>> y
['1', '2', '3', '4', '5']
编辑您改变了对我的要求!要使其显示前导零,请执行以下操作:
>>> x = [1,2,3,4,5,11]
>>> y = ["%02d" % v for v in x]
>>> y
['01', '02', '03', '04', '05', '11']
答案 2 :(得分:6)
我会自己使用列表理解,但这是另一个使用map的解决方案,感兴趣的人......
map(lambda v: "%02d" %v, x)
答案 3 :(得分:1)
y = ['%02d'%v for v in x]
答案 4 :(得分:1)
试试这个:
>>> [str(v).rjust(2,'0') for v in x]
['01', '02', '03', '04', '05', '11']
rjust作为字符串类的方法,采用整数参数(结果长度)和可选的填充字符
答案 5 :(得分:0)
得到0:
y = ['%02d' % i for i in x]
答案 6 :(得分:0)
格式化字符串的替代方法是使用字符串的zfill()方法:
y = [str(i).zfill(2) for i in x]
另一件事:您可能会根据列表中的最大项目进行填充,因此您可以执行以下操作,而不是仅使用2:
pad_length = len(str(max(x)))
y = [str(i).zfill(pad_length) for i in x]