gpt4 book ai didi

python - .rjust() 是如何工作的

转载 作者:行者123 更新时间:2023-11-28 22:02:05 26 4
gpt4 key购买 nike

.rjust() 是如何工作的,为什么它相对于前一个字符放置字符,而不是第一个字符 - 最靠左 - 或屏幕左侧?

我有一个例子:

def pairwiseScore(seqA, seqB):
prev = -1
score = 0
length = len(seqA)
similarity = []
relative_similarity = []

for x in xrange(length):

if seqA[x] == seqB[x]:
if (x >= 1) and (seqA[x - 1] == seqB[x - 1]):
score += 3
similarity.append(x)
else:
score += 1
similarity.append(x)
else:
score -= 1

for x in similarity:

relative_similarity.append(x - prev)
prev = x

return ''.join((seqA, '\n', ''.join(['|'.rjust(x) for x in relative_similarity]), '\n', seqB, '\n', 'Score: ', str(score)))


print pairwiseScore("ATTCGT", "ATCTAT"), '\n', '\n', pairwiseScore("GATAAATCTGGTCT", "CATTCATCATGCAA"), '\n', '\n', pairwiseScore('AGCG', 'ATCG'), '\n', '\n', pairwiseScore('ATCG', 'ATCG')

返回:

ATTCGT

|| |

ATCTAT

Score: 2


GATAAATCTGGTCT

|| ||| |

CATTCATCATGCAA

Score: 4

AGCG

| ||

ATCG

Score: 4

ATCG

||||

ATCG

Score: 10

但我在一个人的帮助下创建了这个。早些时候,此代码没有以下几行:

prev = -1
relative_similarity = []


for x in similarity:

relative_similarity.append(x - prev)
prev = x

这个方法看起来像这样:

def pairwiseScore(seqA, seqB):

score = 0
length = len(seqA)
similarity = []

for x in xrange(length):

if seqA[x] == seqB[x]:
if (x >= 1) and (seqA[x - 1] == seqB[x - 1]):
score += 3
similarity.append(x)
else:
score += 1
similarity.append(x)
else:
score -= 1

return ''.join((seqA, '\n', ''.join(['|'.rjust(x) for x in similarity]), '\n', seqB, '\n', 'Score: ', str(score)))

并产生了这个输出:

ATTCGT

|| |

ATCTAT

Score: 2

GATAAATCTGGTCT

| | | | | |

CATTCATCATGCAA

Score: 4


AGCG

| | |

ATCG

Score: 4


ATCG

|| | |

ATCG

Score: 10

所以我猜到,由 .rjust() 函数处理的字符被放置在输出中,相对于之前的字符 - 不是第一个,最左边放置的字符。
为什么会这样?什么内置函数可以格式化输出,使每个字符都按我的需要放置 - 相对于第一个字符,放置在屏幕最左侧。

最佳答案

str.rjust() 不在任何地方放置任何东西;它返回一个全新的字符串,其中包含旧字符串以及左侧的填充。如果由于最终位置可能出现的其他文本而您想放置更多或更少的填充,那么确保使用更少的填充是的问题。或许您应该考虑推迟到输出阶段添加填充,以便可以添加正确的数量。

print '%-20s%20s' % ('foo', 'bar')

关于python - .rjust() 是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com