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

我有一长串排名,如下所示:


1. xxx

2. xxx

...

14. xxx

...

456. xxx

如您所见,每条线的宽度都不同。我插手了zfill(),但我不知道如何根据最宽条目的长度插入正确数量的零。


任何帮助,将不胜感激。


编辑:我的排名列表是一个类似的列表 ['player 1', 'player 7', 'player 8']


慕哥9229398
浏览 147回答 2
2回答

眼眸繁星

您可以通过评估其长度的长度来评估最长条目的数字长度。例如,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]*5for x in range(len(rankings)):    print(f'{x+1:0{len(str(len(rankings)))}}. xxx')产生这个结果:1. xxx2. xxx3. xxx4. xxx5. xxx>>>尽管rankings = [1]*50for x in range(len(rankings)):    print(f'{x+1:0{len(str(len(rankings)))}}. xxx')产生这个结果:01. xxx02. xxx03. xxx04. xxx05. xxx06. xxx07. xxx08. xxx09. xxx10. xxx11. xxx12. xxx13. xxx14. xxx15. xxx16. xxx17. xxx18. xxx19. xxx20. xxx21. xxx22. xxx23. xxx24. xxx25. xxx26. xxx27. xxx28. xxx29. xxx30. xxx31. xxx32. xxx33. xxx34. xxx35. xxx36. xxx37. xxx38. xxx39. xxx40. xxx41. xxx42. xxx43. xxx44. xxx45. xxx46. xxx47. xxx48. xxx49. xxx50. xxx>>> 

桃花长相依

这是使用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. xxx002. xxx014. xxx456. xxx
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python