gpt4 book ai didi

python - 使用 'max' 和 'len' 正确格式化列表的第 10 项

转载 作者:行者123 更新时间:2023-12-01 08:53:44 24 4
gpt4 key购买 nike

    for i, items in enumerate(zip(member_names, scores)):
if i < 10:
if i == 9:
msg += "{:<1}. {:<{names_len}} <{:,}>\n".format(i + 1, *items, names_len=len(max(member_names, key=len)) - 1)
continue
msg += "{:<1}. {:<{names_len}} <{:,}>\n".format(i + 1, *items, names_len=len(max(member_names, key=len)))

这是一个示例输出:

1. xxxx#1598         <12,704>
2. xxxxxxxxxxxx#2390 <7,151>
3. xxxxx#4966 <5,859>
4. xxxx#3562 <3,051>
5. xxxxxxx#6967 <2,831>
6. xxxxx#4643 <2,073>
7. xxxxx#2006 <1,833>
8. xxxx#4720 <1,679>
9. xxxx#8049 <1,651>
10. xxxxxxxxxxxx#8514 <1,614>

member_names 是一个包含几十个项目的列表。我的两个问题:

  1. 我无法正确解释列表中的第 10 项需要少一个缩进空间的事实。
  2. 因此,如您所见,使用 names_len 时,第 10 项不会将缩进扩展为额外的字符。

谁能帮忙解决这个问题吗?我是个新手,并且已经被这个问题困扰了很长一段时间。

最佳答案

我会尝试稍微整理一下整个事情。让我们提前找出最大长度(而不是每次循环都确定一次);与最大索引号相同:

num_items = len(str(len(member_names)))
max_length = len(max(member_names, key=len))
for i, items in enumerate(zip(member_names, scores)):
msg += "{:>{n}}. {:<{m}} <{:,}>\n".format(i + 1, n=num_items, *items, m=max_length)

(我希望这能按原样工作 - 如果不访问您的数据就无法测试它)

关于python - 使用 'max' 和 'len' 正确格式化列表的第 10 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com