我想在字符串中替换(或追加)一个术语的实例,它们出现在字符串中,字母按字母顺序排列。
我有代码:
message = "This <*> is <*> a <*> message"
我希望它打印如下:
This <*.A> is <*.B> a <*.C> message
我已经能够为消息中的每个术语添加一个数字,但这是它的范围。有人可以告诉我我需要做什么来获得输出吗?
答案 0 :(得分:0)
你可以使用
传统方式:
def replace(message):
message_list = message.split()
indexes = [index for index, element in enumerate(message_list) if element == '<*>']
alphabets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[:len(indexes)]
for index, alphabet in zip(indexes, alphabets):
message_list[index] = '<*.' + alphabet + '>'
return ' '.join(message_list)
或使用正则表达式
import re
def replace(message):
range = len(re.findall('\<\*\>', message))
for alphabet in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[:range]:
replace_with = '<*.' + alphabet + '>'
message = re.sub('\<\*\>', replace_with, message, 1)
return message