Python 3.x 将字符串与列表对象长度对齐
我有一个函数,它比较我从txt文件中提取的统计数据,所以它们是静态的。我在想办法把每个种族/亚种族的统计数据和名字排成一行。以下是消息来源:Python 3.x 将字符串与列表对象长度对齐,python-3.x,Python 3.x,我有一个函数,它比较我从txt文件中提取的统计数据,所以它们是静态的。我在想办法把每个种族/亚种族的统计数据和名字排成一行。以下是消息来源: def compare(): print('------ Compare Race Stats ------') comp1 = query() comp2 = query() comp1 = stats(comp1[0],comp1[1]) comp2 = stats(comp2[0],comp2[1])
def compare():
print('------ Compare Race Stats ------')
comp1 = query()
comp2 = query()
comp1 = stats(comp1[0],comp1[1])
comp2 = stats(comp2[0],comp2[1])
print('{} - {} | {} - {}'
.format(comp1[0][0],comp1[0][1],comp2[0][0],comp2[0][1]))
for i in range(len(comp1[1])):
print('{}{}{}{}'.format(' '*round(len(comp1[0][0])+len(comp1[0][1])/5),comp1[1][i],
' '*round(len(comp2[0][0])+2+len(comp2[0][1])/5),comp2[1][i]))
query()stats()。第二个空空间计算中的+2
是我对第一个print语句(print({}-{}-{}{}-{}}
)的解释,这是一个猜测。输出看起来并没有那么糟糕,我认为空间计算有点聪明(我是一个noob)但我忍不住想知道堆栈溢出会说些什么。是否有一些公认的方法来排列各种输出
以下是一些输出,共有10个不同的种族/子种族:
Elezen - Duskwight | Hyur - Midlander
STR : 20 STR : 21
DEX : 20 DEX : 19
VIT : 19 VIT : 20
INT : 23 INT : 21
MND : 20 MND : 18
PIE : 18 PIE : 21
Mi'Qote - Seekers of the Sun | Mi'Qote - Keepers of the Moon
STR : 21 STR : 18
DEX : 22 DEX : 21
VIT : 20 VIT : 17
INT : 18 INT : 19
MND : 19 MND : 23
PIE : 20 PIE : 22
经过一点研究,我发现rjust
和ljust
str
功能:
def compare():
print("------ Compare Race Stats ------")
comp1 = query()
comp2 = query()
comp1 = stats(comp1[0], comp1[1])
comp2 = stats(comp2[0], comp2[1])
print("{} - {} | {} - {}"
.format(comp1[0][0], comp1[0][1], comp2[0][0], comp2[0][1]))
for i in range(len(comp1[1])):
print("{} {} {}".format(comp1[1][i].rjust(len(comp1[0][0]+comp1[0][1])+3),
"|", comp2[1][i]))
以下是输出:
Roegadyn - Hellsguard | Elezen - Duskwight
STR : 20 | STR : 20
DEX : 17 | DEX : 20
VIT : 21 | VIT : 19
INT : 20 | INT : 23
MND : 22 | MND : 20
PIE : 20 | PIE : 18
Mi'Qote - Keepers of the Moon | Roegadyn - Hellsguard
STR : 18 | STR : 20
DEX : 21 | DEX : 17
VIT : 17 | VIT : 21
INT : 19 | INT : 20
MND : 23 | MND : 22
PIE : 22 | PIE : 20
我很抱歉在发帖前问了一个我应该自己回答的问题,至少我能回答清楚