Python中的str的strnset()是否有任何等效函数?

时间:2013-08-31 05:37:54

标签: python c

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

2 个答案:

答案 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的值。