Python中如何实现按自定义格式拼接列表内的字符串?
Python 没有直接符合你伪代码写法的特殊字符串拼接语法,你写的"Hi! {} Welcome.".join(temp)实际运行会得到TOMHi! {} Welcome.JOHN,和预期结果不符。可以通过「先对每个列表元素做模板格式化,再拼接」的逻辑实现需求,具体实现方案如下:
- 方案1(Python 3.6及以上版本推荐,使用f-string语法)
temp = ["TOM", "JOHN"] # 如需去掉结果开头的前置空格,删除开头的' ' + 即可 result = ' ' + ' '.join(f"Hi! {name} Welcome." for name in temp) print(result) # 输出:" Hi! TOM Welcome. Hi! JOHN Welcome."
- 方案2(兼容旧Python版本,使用
str.format)
temp = ["TOM", "JOHN"] # 模板可单独定义,后续修改格式时无需调整拼接逻辑 template = "Hi! {} Welcome." result = ' ' + ' '.join(template.format(name) for name in temp)
如果列表元素量很大,用生成器表达式做格式化的内存效率更高,不需要额外生成完整的中间列表即可完成拼接。
内容的提问来源于stack exchange,提问作者Shivangi Singh
相关产品推荐
相关产品推荐

