【问题标题】:Generate list of numbers in specific format生成特定格式的数字列表
【发布时间】:2012-08-15 08:03:05
【问题描述】:

我需要生成特定格式的数字列表。格式是

mylist = [00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15]
#Numbers between 0-9 are preceded by a zero.

我知道如何使用range 生成正常的数字列表

>>> for i in range(0,16):
...     print i

那么,python中是否有任何内置方法可以生成指定格式的数字列表。

【问题讨论】:

    标签: python list python-2.7


    【解决方案1】:

    Python string formatting 允许您指定精度:

    精度(可选),以“.”形式给出(点)后跟精度。

    在这种情况下,你可以使用它的值为 2 来得到你想要的:

    >>> ["%.2d" % i for i in range(16)]
    ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12',
     '13', '14', '15']
    

    你也可以使用 zfill 函数:

    >>> str(3).zfill(2)
    '03'
    

    或字符串格式函数:

    >>> "{0:02d}".format(3)
    '03'
    

    【讨论】:

    • 谢谢,正是我需要的。
    • @jterrace:您可能需要添加等效的 str.format 示例。
    • "%02d" % i 也可以。 map("{:02d}".format, range(16)) 的优势在于它在非整数上失败。
    【解决方案2】:

    在oracle中写这个查询生成01 02 03系列

    select lpad(rownum+1, decode(length(rownum),1,2, length(rownum)),0) from employees
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2020-03-01
      相关资源
      最近更新 更多