如何用sty格式化文本

2024-09-30 01:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下:

info={'Resolution':'640x360', 'DisplayResolution': '640x360', 'Display Channels':'R,G,B,A'}
for key in info:
    print (key + str(info[key].rjust(45,'.')))

生成以下输出:

Resolution......................................640x360
DisplayResolution......................................640x360
Display Channels......................................R,G,B,A

但我想得到:

Resolution.............................................640x360
DisplayResolution......................................640x360
Display Channels.......................................R,G,B,A

如何做到这一点?你知道吗

编辑时间:

谢谢大家的宝贵意见。以下是我根据您的建议编写的代码摘要:

ROW_SIZE=0
for key, value in info.iteritems():
    if not key or not value: continue
    key=str(key)
    value=str(value)
    total=len(key)+len(value)+10
    if ROW_SIZE<total: ROW_SIZE=total

result=''
if ROW_SIZE:
    for key in info:
        result+=(key+str(info[key]).rjust(ROW_SIZE-len(key),'.'))+'\n'
print result

Tags: keyininfoforsizelenifvalue
3条回答

将句点作为键的填充符,而不是值:

info = {'Resolution':'640x360', 'DisplayResolution': '640x360',
      'Display Channels':'R,G,B,A'}
for key, value in info.items():
    print('{k:.<55}{v}'.format(k=key, v=value))

收益率

Resolution.............................................640x360
DisplayResolution......................................640x360
Display Channels.......................................R,G,B,A

上面使用较新的format method。或者,使用旧式字符串格式:

for key,value in info.items():
    print('%s%s' % (key.ljust(55, '.'), value))

最好的方法是跟踪单词的长度,并为剩余的空格数设置一个变量,然后定义一个总的空格(比如45作为分辨率和颜色信息之前的长度)

 for key in info:
      print (key+str(info[key]).rjust(45-len(key),'.'))

还有一件事,您可能不需要str()以info[key]开头。字符串是右对齐的,因此如果输出继续,就没有必要了。否则执行我的修复。你知道吗

只需将rjust值动态设置为所需的总长度:

例如:

info={'Resolution':'640x360', 'DisplayResolution': '640x360', 'Display Channels':'R,G,B,A'}
desired_length = 55
for key in info:
    num_dots = desired_length - len(key) + len(info[key])
    print (key + str(info[key].rjust(num_dots,'.')))

输出:

Resolution.............................................640x360
DisplayResolution......................................640x360
Display Channels.......................................R,G,B,A

相关问题 更多 >

    热门问题