【发布时间】:2018-05-27 23:35:50
【问题描述】:
所以我有一个问题,我知道可以通过字符串格式化来解决,但我真的不知道从哪里开始。 我想要做的是创建一个填充列表,以便在逗号前有 n 个字符,如下面的列表所示。
1148,
39,
365,
6、
56524,
干杯并感谢您的帮助:)
【问题讨论】:
标签: python string formatting padding
所以我有一个问题,我知道可以通过字符串格式化来解决,但我真的不知道从哪里开始。 我想要做的是创建一个填充列表,以便在逗号前有 n 个字符,如下面的列表所示。
1148,
39,
365,
6、
56524,
干杯并感谢您的帮助:)
【问题讨论】:
标签: python string formatting padding
最直接的方法是使用str.rjust() 函数。例如:
your_list = [1148, 39, 365, 6, 56524]
for element in your_list:
print(str(element).rjust(5))
你会得到:
1148 39 365 6 56524还有str.center()和str.ljust()用于其他方向的字符串对齐。
但你也可以通过格式化来做到这一点:
your_list = [1148, 39, 365, 6, 56524]
for element in your_list:
print("{:>5}".format(element))
【讨论】:
len(str(largest_value))),然后在填充第一个元素时将该数字用于str.rjust()。不用担心昏迷之类的问题 - 在生成实际的 CSV 结构时,请使用内置的 csv 模块进行投标。
见Format Specification Mini-Language。
您正在寻找类似"{:5d},".format(i) 的东西,其中i 是要打印的整数,宽度为5。
对于变量width:"{:{}d},".format(i, width)。
【讨论】:
假设你知道 n 是什么你可以做:
'{:>n}'.format(number)
因此,如果您有一个整数列表并希望按上述方式对其进行格式化,您可以这样做:
numbers = [1148, 39, 365, 6, 56524]
result = '\n'.join(('{:>5},'.format(x) for x in numbers))
【讨论】: