如何在 Python 中执行此操作?
strnset(string,symbol,n);
输出应该是:
Enter String : ABCDEFGHIJ
Enter Symbol for replacement : +
How many string characters to be replaced : 4
Before strnset() : ABCDEFGHIJ
After strnset() : ++++EFGHIJ
你会想要使用Python 的 Slice Notation:
>>> def strnset(mystring, symbol, n):
... return symbol*n + mystring[n:]
...
>>> print strnset("ABCDEFGHIJ", "+", 4)
++++EFGHIJ
mystring[n:]
获取字符串中第 n 个字符之后的每个字符。然后,您可以简单地将其与标志连接在一起。
请注意,如果您不希望返回比您实际传递的字符串包含更多字符的字符串(例如,,请在语句strnset('hi', '+', 4) == '++++')
之前添加:return
n = min(len(mystring), n)
现在,运行时:
>>> print strnset("HAI", "+", 4)
+++
这是一个带有生成器表达式的:
chars = "ABCDEJGHIJ"
r = "+"
n = 4
masked_result = "".join(r if idx <= n else c for idx, c in enumerate(chars, 1))
>>> '++++EJGHIJ'
注意:这支持屏蔽值小于n
.