我如何在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
答案 0 :(得分:6)
您需要使用Python's 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)
+++
答案 1 :(得分:0)
这是一个带有生成器表达式的文件:
chars = "ABCDEJGHIJ"
r = "+"
n = 4
masked_result = "".join(r if idx <= n else c for idx, c in enumerate(chars, 1))
>>> '++++EJGHIJ'
注意:这支持屏蔽小于n
的值。