为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2022-01-18 15:55:45
我有一长串排名,如下所示:1. xxx2. xxx...14. xxx...456. xxx如您所见,每条线的宽度都不同。我插手了zfill(),但我不知道如何根据最宽条目的长度插入正确数量的零。任何帮助,将不胜感激。编辑:我的排名列表是一个类似的列表 ['player 1', 'player 7', 'player 8']
查看完整描述

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

>>> 


查看完整回答
反对 回复 2022-01-18
?
桃花长相依

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


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信