有没有办法将字典的键值输出的时候整齐排列?
本帖最后由 zhang1497 于 2021-11-28 19:21 编辑自己给自己做了一个练习,然后每次做完以后,把错题增加到另一个空字典中。以便自己查看还有哪下不足。
但是在输出错题 键值的时候因为各个键值占位不同,导致输出的时候比较乱。
i = 0
for key,value in error.items():
i = i + 1
if (i+1) % 2 == 0:
print(key,":",value,end="\t" )
else:
print(key, ":", value)
print('\n-----------------------')
结果:
https://www.hualigs.cn/image/61a09555c25ad.jpg
经过大佬【三滑稽甲苯】指导以后,终于对齐了。很好看,对于强迫症的我来说舒服了。
代码如下
for key,value in error.items():
i += 1
if (i+1) % 5 == 1:
print('%+4s:%-4s' % (key, value))
else:
print('%+4s:%-4s' % (key, value),end="\t" )
print('\n-----------------------')
运行如下:
https://www.hualigs.cn/image/61a365b993f2e.jpg
如果长度相差不大的话用tab可以直接对齐
相差较大的话建议用"%5s" % key之类的格式化字符串输出
偷懒的方法:使用第三方库,例如prettytable, rich 三滑稽甲苯 发表于 2021-11-26 16:12
如果长度相差不大的话用tab可以直接对齐
相差较大的话建议用"%5s" % key之类的格式化字符串输出
偷懒的方 ...
差别不是很大,文字最多3个字,前面的数字也最多2位数。怎么用tab对齐? 搞个网页 返回到表格里 感谢分享,辛苦了 zhang1497 发表于 2021-11-26 16:23
差别不是很大,文字最多3个字,前面的数字也最多2位数。怎么用tab对齐?
试试看
for key, value in error.items():
i += 1
if (i+1) & 1:
print("%s\t: %s" % (key, value))
else:
print("%s\t: %s" % (key, value), end='\t') 三滑稽甲苯 发表于 2021-11-26 17:00
试试看
for key, value in error.items():
i += 1
好一点,但是碰到三个字的value,又乱了。例如:
00:望远镜01:小树
02:铃儿03:凳子 zhang1497 发表于 2021-11-26 18:31
好一点,但是碰到三个字的value,又乱了。例如:
00:望远镜01:小树
02:铃儿03:凳子
显然这种得以数字为排序对象。
比如那个x64dbg生成的INI配置文件中
工具、脚本、命令就是按字母升序排列的
最后输出的结果多于10个时
顺序就是乱的了。 冥界3大法王 发表于 2021-11-26 19:49
显然这种得以数字为排序对象。
比如那个x64dbg生成的INI配置文件中
工具、脚本、命令就是按字母升序排 ...
那应该是没办法了,估计要实现也要绕很大一圈。 zhang1497 发表于 2021-11-26 20:38
那应该是没办法了,估计要实现也要绕很大一圈。
用'%-8s:%-8s' % (key, value)格式化试试看,数字自己调一下
页:
[1]
2