将范围(r)转换为python中长度为2的字符串列表

Kev*_*fer 6 python string list range

我只想将列表(我使用范围(r))更改为字符串列表,但如果字符串的长度为1,则在前面添加0.我知道如何使用列表将列表转换为字符串

ranger= map(str,range(r))
Run Code Online (Sandbox Code Playgroud)

但我希望能够改变这些字符串的长度.

输入:

r = 12
ranger = range(r)
ranger = magic_function(ranger)
Run Code Online (Sandbox Code Playgroud)

输出:

print ranger
>>> ['00','01','02','03','04','05','06','07','08','09','10','11']
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我的最终目标是:我有一个表格矩阵

numpy.array([[1,2,3],[4,5,6],[7,8,9]])
Run Code Online (Sandbox Code Playgroud)

我想制作一组字符串,使得前2个字符是行,第二个字符是列,第二个字符是'01',并且每个字符串都有矩阵[row,col].所以上面的值看起来像这样:

000001    since matrix[0,0] = 1
000101    since matrix[0,1] = 2
000101    since matrix[0,1] = 2
000201
000201
000201
etc
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 15

使用string formatting和列表理解:

>>> lst = range(11)
>>> ["{:02d}".format(x) for x in lst]
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10']
Run Code Online (Sandbox Code Playgroud)

或者format:

>>> [format(x, '02d') for x in lst]
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10']
Run Code Online (Sandbox Code Playgroud)


kin*_*all 11

zfill完全符合您的要求,并且不需要您像各种类型的字符串格式一样理解一种神秘的迷你语言.有一个地方,但这是一个简单的工作与现成的内置工具.

ranger = [str(x).zfill(2) for x in range(r)]
Run Code Online (Sandbox Code Playgroud)


ars*_*jii 5

这是我的看法:

>>> map('{:02}'.format, xrange(12))
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11']
Run Code Online (Sandbox Code Playgroud)

为了您自己的启蒙,请尝试阅读格式字符串语法