Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建已定义数字模式的列表_Python_List_Numbers - Fatal编程技术网

Python 创建已定义数字模式的列表

Python 创建已定义数字模式的列表,python,list,numbers,Python,List,Numbers,我想创建一个列表,用于生成以下内容的输出: [001002003004005] 并一直运行到300。在数字前面有0,这是很重要的。我尝试了以下方法: a = [] for i in range(0,3): for j in range(0,10): for k in range(0,10): a.append(i j k) 但是,由于明显的原因,append函数的行为方式与我希望的不同 其他人对我该怎么做有什么建议吗?您不能生成带有填充的整数的列

我想创建一个列表,用于生成以下内容的输出:

[001002003004005]

并一直运行到
300
。在数字前面有
0
,这是很重要的。我尝试了以下方法:

a = []
for i in range(0,3):
    for j in range(0,10):
        for k in range(0,10):
            a.append(i j k)
但是,由于明显的原因,
append
函数的行为方式与我希望的不同


其他人对我该怎么做有什么建议吗?

您不能生成带有填充的整数的列表,否。您可以生成带前导零的字符串:

a = [format(i + 1, '03d') for i in range(300)]
用于将整数格式化为3个字符的字段宽度,前导零填充长度,编码为
03d

演示:


不能生成带有填充的整数的列表,否。可以生成带前导零的字符串:

a = [format(i + 1, '03d') for i in range(300)]
用于将整数格式化为3个字符的字段宽度,前导零填充长度,编码为
03d

演示:


您可以将
列表
子类化并重载其以调用每个号码:

class NumList(list):
    def __repr__(self):
        return '[' + ', '.join([str(x).zfill(3) for x in self]) + ']'
演示:

要创建所需的精确列表,请执行
NumList(范围(300))


但是请注意,这并不会使整数具有前导零(正如@MartijnPieters所说的,这是不可能的)。输出仍然是一个字符串。所有这一切都是在告诉Python如何在将这些整数输出到控制台时显示它们。

您可以将
列表子类化并重载其以调用每个数字:

class NumList(list):
    def __repr__(self):
        return '[' + ', '.join([str(x).zfill(3) for x in self]) + ']'
演示:

要创建所需的精确列表,请执行
NumList(范围(300))


但是请注意,这并不会使整数具有前导零(正如@MartijnPieters所说的,这是不可能的)。输出仍然是一个字符串。所有这些都是在告诉Python如何在将这些整数输出到控制台时显示它们。

0之前在Python中表示八进制数,因此不能使用带前导的整数zeros@PadraicCunningham:即使这样,它也只是一种文字语法,从未用于表示生成的整数值。@MartijnPieters,是的,我的主要观点是011不会是110,因为它在python中是一个八进制数,所以不能有带前导的整数zeros@PadraicCunningham:即使这样,它也只是一种文字语法,从未用于表示生成的整数值。@MartijnPieters,是的,我的主要观点是011不会是11