在列表中为每个单词添加前缀,并在Python中转换为字符串

在列表中为每个单词添加前缀,并在Python中转换为字符串,python,string,python-3.x,replace,split,Python,String,Python 3.x,Replace,Split,问题陈述:对于由分隔符连接的给定单词列表,我想在该列表中的每个单词前面加一个字符,然后将结果作为逗号分隔的字符串。我也很好奇这样做的最佳方式(可能是使用regex??) 例如,假设我有一个定义如下的列表: lst = ["Hello", "this.is.a.test", "with", "items", "which.can.have.many.dots"] 假设我要作为前缀的字符是散列(#)

问题陈述:对于由分隔符连接的给定单词列表,我想在该列表中的每个单词前面加一个字符,然后将结果作为逗号分隔的字符串。我也很好奇这样做的最佳方式(可能是使用regex??)

例如,假设我有一个定义如下的列表:

lst = ["Hello", "this.is.a.test", "with", "items", "which.can.have.many.dots"]
假设我要作为前缀的字符是散列(#),那么我希望得到如下结果:

#Hello, #this.#is.#a.#test, #with, #items, #which.#can.#have.#many.#dots
我对两种方法进行了计时,结果发现方法#1更快,但我想知道是否有一种更简单的方法我错过了。请注意,在下面的示例中,我使用了Python 3中引入的新格式字符串-基本上相当于{}.format(args)

方法#1 方法#2 对
n=100_000
运行重复
time.time()
的结果:

方法#1-52ms

方法#2-152ms


第一种方法很可能是使用Python就可以实现的最佳方法。我能看到的优化的唯一方法是编写C++库,以实现您想要的精确操作并将其连接到Python。但不确定它是否真的能显著提高性能。
re.sub(“\.”、“\.”、“\\.”、“\\.”、“\\'.join(lst))
不确定这是否能提供更好的性能
_ = f"#{', #'.join(lst).replace('.', '.#')}"
_ = ', '.join([f"#{item.replace('.', '.#')}" for item in lst])