0

如何在 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
4

2 回答 2

6

你会想要使用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)
+++
于 2013-08-31T05:39:49.143 回答
0

这是一个带有生成器表达式的:

chars = "ABCDEJGHIJ" 
r = "+" 
n = 4 
masked_result = "".join(r if idx <= n else c for idx, c in enumerate(chars, 1))

>>> '++++EJGHIJ'

注意:这支持屏蔽值小于n.

于 2013-08-31T06:14:54.137 回答