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