Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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_Python 3.x_Format - Fatal编程技术网

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,因为谁将是最大的数字,很明显,有最大的位数