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

新手上路,请多包涵

我只想将一个列表(我使用 range® 制作的)更改为一个字符串列表,但如果字符串的长度为 1,则在前面添加一个 0。我知道如何使用将列表转换为字符串

ranger= map(str,range(r))

但我还希望能够更改这些字符串的长度。

输入:

 r = 12
ranger = range(r)
ranger = magic_function(ranger)

输出:

 print ranger
>>> ['00','01','02','03','04','05','06','07','08','09','10','11']

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

numpy.array([[1,2,3],[4,5,6],[7,8,9]])

我想制作一组字符串,前两个字符是行,第二个是列,第三个是“01”,并且每个字符都有矩阵[行,列]。所以上面的值看起来像这样:

 000001    since matrix[0,0] = 1
000101    since matrix[0,1] = 2
000101    since matrix[0,1] = 2
000201
000201
000201
etc

原文由 KevinShaffer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 615
2 个回答

使用 string formatting 和列表理解:

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

format

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

原文由 Ashwini Chaudhary 发布,翻译遵循 CC BY-SA 4.0 许可协议

zfill 做你想做的,不需要你理解神秘的迷你语言,就像各种类型的字符串格式一样。这是一个适合它的地方,但这是一个使用现成的内置工具的简单工作。

 ranger = [str(x).zfill(2) for x in range(r)]

原文由 kindall 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题