Python - 列表转换

时间:2009-03-13 17:41:29

标签: python list

有谁知道我用来改变x列表的神奇之处:

  

x = [1,2,3,4,5,11]

进入y列表?

  

y = ['01','02','03','04','05','11']

先谢谢大家帮助我...

7 个答案:

答案 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]