如何显示一个单词的前 3 个字母,但在 Python 3 中用“-”破折号替换单词的其余部分

How to display first 3 letters in a word, but replace the remainder of the word with "-" dashes in Python 3

假设我有一个词,我只想显示该词的前三个字母。但剩下的最后一个字母需要显示破折号或星号等

例如,如果我们有单词 javascript,那么输出应该显示 jav-------pebbles 应该显示为 peb----,或者而不是 [=16] =],输出应该显示pyt---,等等

str.replace(old, new)str.replace(old, new, count) 在这种情况下行得通吗?如果是,那么如何?

这是我做的一个例子:

>>> p = "kotlin"

>>> p = p.replace(p[3:], "-")

>>> p

'kot-'
>>> 

所需的输出将显示 kot---,但是,尽管它确实显示了单词的前 3 个字母,但 kot- 仅在最后显示了一个破折号。

还有什么方法可以解决这个问题?

p = "kotlin"
x = 3
p[:x]+'-'*x

输出

'kot---'

您可以使用字符串乘法:

dashes = "-" * len(p[3:])
p = p[:3] + dashes

你可以做一个 for 循环,甚至可以用 len(p) 来检查有多少个字母,减去 3,然后将单词数放在前 3 个之后,

p = "kotlin"
p[:3]+"-"*(len(p)-3)

输出

"kot---"
def display_dashes(string):
    dashed_string = "-"*len(string)
    return string[:3]+dashed_string[:len(dashed_string)-3]
display_dashes("kotlin")
#'kot---'

或者你可以用str.ljust()函数来解决这一行

display_dashes = lambda string :string[:3].ljust(len(string),'-')
display_dashes("kotlin")
#'kot---'