2 回答

TA貢獻1873條經驗 獲得超9個贊
您可以通過評估其長度的長度來評估最長條目的數字長度。例如,99 是 2 位長,len(str(99))是 2,表示需要兩個字符。然后我們可以利用 f-string 格式來產生以下結果:
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
>>>
盡管
rankings = [1]*50
for x in range(len(rankings)):
print(f'{x+1:0{len(str(len(rankings)))}}. 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
>>>

TA貢獻1860條經驗 獲得超8個贊
這是使用maxwith的一種方法len
前任:
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
添加回答
舉報