首页 > 解决方案 > 当我有多个不同长度的字符串时,有没有办法将一个字符放在所有字符串的相同索引处

问题描述

我正在用 python 制作一个不和谐的机器人。今天我抓取了一个网站,我想用我抓取的所有信息制作一个字符串。我遇到的问题是我想在不同部分之间创建一条垂直线,但是有些字符串比其他字符串长,例如我想创建这个:

苹果\s |
梨(\s) |

但是因为 2 个字符串的长度不同,所以 '|' 不会是一条直线。我现在的代码是这样的:

def print_tracked_xp(self, XpDict):
        trackedStuff = """Skill    | Today's XP    | Yesterday's XP    | Weekly XP    \n"""
    for key in XpDict:
        trackedStuff += key + '    | ' + XpDict[key]['Daily XP'] + '    | ' + XpDict[key]['Yesterdays XP'] + '    | ' + XpDict[key]['Weekly XP'] + '\n'
    return trackedStuff

作为输出我得到这个: https
://imgur.com/FbZlTZd 但我想得到这样的东西: https ://imgur.com/VXxIP75

标签: python

解决方案


我会在您的打印语句中使用字符串格式化程序。冒号后指定的任何内容都是为 print 语句中的变量保留的字符数。我为技能分配了 13 个,为dailyXP 分配了7 个,为每周XP 分配了10 个,但是您可以轻松地修改这些值以添加缓冲区。

print('{0:13} | {1:7} | {2:7} | {3:10}'.format(skill, todayXP, yesterdayXP, weeklyXP))

推荐阅读