Python 如何在长列表中保持一致的宽度?

Python 如何在长列表中保持一致的宽度?,python,Python,我有一个很长的排名列表,如下所示: 1. xxx 2. xxx ... 14. xxx ... 456. xxx 如您所见,每行的宽度都不同。我曾使用过zfill(),但我不知道如何根据最宽条目的长度插入正确数量的零 任何帮助都将不胜感激 编辑:我的排名列表是一个类似于['player1'、'player7'、'player8']的列表。您可以通过计算最长条目的长度来计算其长度(以位数表示)。例如,99是2位数,而len(str(99))是2,这意味着需要两个字符。 然后,我们可以利用f字符串

我有一个很长的排名列表,如下所示:

1. xxx
2. xxx
...
14. xxx
...
456. xxx
如您所见,每行的宽度都不同。我曾使用过
zfill()
,但我不知道如何根据最宽条目的长度插入正确数量的零

任何帮助都将不胜感激


编辑:我的排名列表是一个类似于
['player1'、'player7'、'player8']

的列表。您可以通过计算最长条目的长度来计算其长度(以位数表示)。例如,99是2位数,而
len(str(99))
是2,这意味着需要两个字符。 然后,我们可以利用f字符串格式生成以下结果:

for x in range(len(rankings)):
    print(f'{x+1:0{len(str(len(rankings)))}}. xxx')
例如:

rankings = [1]*5

for x in range(len(rankings)):
    print(f'{x+1:0{len(str(len(rankings)))}}. xxx')
产生以下结果:

1. xxx
2. xxx
3. xxx
4. xxx
5. xxx
>>>
01. xxx
02. xxx
03. xxx
04. xxx
05. xxx
06. xxx
07. xxx
08. xxx
09. xxx
10. xxx
11. xxx
12. xxx
13. xxx
14. xxx
15. xxx
16. xxx
17. xxx
18. xxx
19. xxx
20. xxx
21. xxx
22. xxx
23. xxx
24. xxx
25. xxx
26. xxx
27. xxx
28. xxx
29. xxx
30. xxx
31. xxx
32. xxx
33. xxx
34. xxx
35. xxx
36. xxx
37. xxx
38. xxx
39. xxx
40. xxx
41. xxx
42. xxx
43. xxx
44. xxx
45. xxx
46. xxx
47. xxx
48. xxx
49. xxx
50. xxx
>>> 

rankings = [1]*50

for x in range(len(rankings)):
    print(f'{x+1:0{len(str(len(rankings)))}}. xxx')
产生以下结果:

1. xxx
2. xxx
3. xxx
4. xxx
5. xxx
>>>
01. xxx
02. xxx
03. xxx
04. xxx
05. xxx
06. xxx
07. xxx
08. xxx
09. xxx
10. xxx
11. xxx
12. xxx
13. xxx
14. xxx
15. xxx
16. xxx
17. xxx
18. xxx
19. xxx
20. xxx
21. xxx
22. xxx
23. xxx
24. xxx
25. xxx
26. xxx
27. xxx
28. xxx
29. xxx
30. xxx
31. xxx
32. xxx
33. xxx
34. xxx
35. xxx
36. xxx
37. xxx
38. xxx
39. xxx
40. xxx
41. xxx
42. xxx
43. xxx
44. xxx
45. xxx
46. xxx
47. xxx
48. xxx
49. xxx
50. xxx
>>> 

这是一种使用
max
len

Ex:

data = ["1. xxx", "2. xxx", "14. xxx", "456. xxx"]
fill_value = len(max(data, key=lambda x: len(x)))
for i in data:
    print(i.zfill(fill_value))
001. xxx
002. xxx
014. xxx
456. xxx
输出:

data = ["1. xxx", "2. xxx", "14. xxx", "456. xxx"]
fill_value = len(max(data, key=lambda x: len(x)))
for i in data:
    print(i.zfill(fill_value))
001. xxx
002. xxx
014. xxx
456. xxx

可能重复@Netwave,这是一个java问题,而这是python。他们关系密切,但这会使他们成为一个复制品吗?@Taegyung,说得对。只是信任过滤器。让我更新一下