如何显示一个单词的前 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---'
假设我有一个词,我只想显示该词的前三个字母。但剩下的最后一个字母需要显示破折号或星号等
例如,如果我们有单词 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---'