所以我有以下列表:
population = [60000, 120000, 200000, 5000]
想要这样格式化输出:
Lo: loc_pop
-----------
1 60000
2 120000
3 200000
4 5000
我遇到的问题是我无法正确对齐打印语句,因此所有人口值(不论大小)都按照我上面显示的方式对齐。
代码如下:
population = [123100, 60000, 98300, 220000, 5000]
print("Lo: loc_pop")
print("-----------")
count = 0
for x in range(0, len(population)):
print(count, ":", " ", population[x])
count = count + 1
以下是输出:
Lo: loc_pop
-----------
0 : 123100
1 : 60000
2 : 98300
3 : 220000
4 : 5000
输出似乎在“计数”之后和“:”之前添加了一个空格,并且根据数字的数量,它没有正确右对齐。
任何帮助都会很棒!
答案 0 :(得分:1)
如果您只想以指定格式打印,使用rjust:
population = [60000, 120000, 200000, 5000]
header = "Lo: loc_pop"
header_length = len(header)
print(header)
print("-" * header_length)
for i, p in enumerate(population, 1):
print(i, str(p).rjust(header_length - (len(str(i)) + 1)))
输出
Lo: loc_pop
-----------
1 60000
2 120000
3 200000
4 5000
但是,如果您打算做更多与数据相关的工作,建议您看看pandas。
答案 1 :(得分:1)
您可以在Python中使用format
来格式化字符串。另外,代码中不需要count
变量,因为您可以直接从循环变量中获取值。
population = [123100, 60000, 98300, 220000, 5000]
print("Lo: loc_pop")
print("-----------")
for x in range(0, len(population)):
print('{}{:>10}'.format(x+1, population[x]))
# Lo: loc_pop
# -----------
# 1 60000
# 2 120000
# 3 200000
# 4 5000
答案 2 :(得分:0)
最简单的解决方案可能是使用熊猫。
import pandas as pd
d = {'loc_pop': [60000, 120000, 200000, 5000]}
df = pd.DataFrame(data=d)
print(df)
结果:
loc_pop
0 60000
1 120000
2 200000
3 5000