Python 用可变长度格式化数字
我在一个列表中有一堆数字,我想以一种漂亮的方式打印它们,以便它们在右侧对齐Python 用可变长度格式化数字,python,python-3.x,format,Python,Python 3.x,Format,我在一个列表中有一堆数字,我想以一种漂亮的方式打印它们,以便它们在右侧对齐 numbers = [192829, 88288, 912, 1992, 2828, 38] for number in numbers: print("{:6d}".format(number)) 这给了我: 192829 88288 912 1992 2828 38 这是可行的,因为我知道最长的数字是6位数,所以我硬编码了6:“{:6d}” 如果我不知道最长的数字呢。我能想到的唯一
numbers = [192829, 88288, 912, 1992, 2828, 38]
for number in numbers:
print("{:6d}".format(number))
这给了我:
192829
88288
912
1992
2828
38
这是可行的,因为我知道最长的数字是6位数,所以我硬编码了6:“{:6d}”
如果我不知道最长的数字呢。我能想到的唯一解决办法是如下
length = len(str(max(numbers)))
output_template = "{:" + str(length) + "d}"
for number in numbers:
print(output_template.format(number))
有更好的方法吗?您可以将变量传递到
str.format
,无需创建模板:
numbers = [192829, 88288, 912, 1992, 2828, 38]
for number in numbers:
print("{0:{1}d}".format(number,len(str(max(numbers)))))
您可以将变量传递到
str.format
,无需创建模板:
numbers = [192829, 88288, 912, 1992, 2828, 38]
for number in numbers:
print("{0:{1}d}".format(number,len(str(max(numbers)))))
您可以将变量传递到
str.format
,无需创建模板:
numbers = [192829, 88288, 912, 1992, 2828, 38]
for number in numbers:
print("{0:{1}d}".format(number,len(str(max(numbers)))))
您可以将变量传递到
str.format
,无需创建模板:
numbers = [192829, 88288, 912, 1992, 2828, 38]
for number in numbers:
print("{0:{1}d}".format(number,len(str(max(numbers)))))
len(str(最大(数量))
提供最大数字的长度,因此可以使用
len(str(最大(数量))
提供最大数字的长度,因此可以使用
len(str(最大(数量))
提供最大数字的长度,因此可以使用
len(str(最大(数量))
为您提供最大数字的长度,因此您可以使用此您可以尝试:
>>> numbers = [192829, 88288, 912, 1992, 2828, 38]
>>> length = len(str(max(numbers))) # max give you larget number and len find its length
>>> for x in numbers:
... print("{:{}d}".format(x,length))
...
192829
88288
912
1992
2828
38
您可以尝试以下方法:
>>> numbers = [192829, 88288, 912, 1992, 2828, 38]
>>> length = len(str(max(numbers))) # max give you larget number and len find its length
>>> for x in numbers:
... print("{:{}d}".format(x,length))
...
192829
88288
912
1992
2828
38
您可以尝试以下方法:
>>> numbers = [192829, 88288, 912, 1992, 2828, 38]
>>> length = len(str(max(numbers))) # max give you larget number and len find its length
>>> for x in numbers:
... print("{:{}d}".format(x,length))
...
192829
88288
912
1992
2828
38
您可以尝试以下方法:
>>> numbers = [192829, 88288, 912, 1992, 2828, 38]
>>> length = len(str(max(numbers))) # max give you larget number and len find its length
>>> for x in numbers:
... print("{:{}d}".format(x,length))
...
192829
88288
912
1992
2828
38
这是另一种方式
这是另一种方式
这是另一种方式
这是另一种方式
更好的方法?这是一个好方法,事实上,没有任何其他方法能比max函数更好。除非你能预测最大数,否则没有任何方法能比max更好。只要你的数不会为负。更好的方法?这是一个好方法,事实上,没有任何其他方法能比max函数更好。除非你能预测最大数r、 没有办法比max做得更好。只要你的数字不为负值。更好的办法?这是一个好办法,实际上,没有其他办法比max function更好。除非你能预测最大数字,否则没有办法比max做得更好。只要你的数字不为负值。更好的办法?这实际上是一个好办法,没有任何其他方法可以比max函数更好。除非你能预测最大数字,否则没有办法比max更好。只要你的数字不会是负数。没有必要使用key=length,因为这个数字将是max,很明显,它有max number of digits,没有必要使用key=length,因为这个数字是w我将是最大的,很明显,有最大的数字,没有必要使用key=length,因为谁将是最大的数字,很明显,有最大的数字,没有必要使用key=length,因为谁将是最大的数字,很明显,有最大的位数