Python字符串拼接应按场景选择:少量用f-string或+,大量用''.join(),禁用循环中+=;f-string简洁高效,join()适合批量和带分隔符场景。

在Python中快速拼接字符串,关键不是“用哪种方法最快”,而是“选对场景、避开低效写法”。最常用且推荐的方式是用 + 或 f-string(Python 3.6+),而 .join() 更适合拼接大量字符串片段。
少量字符串拼接:直接用 f-string 或 +
f-string 是目前最简洁、可读性最好、性能也极佳的方式,尤其适合带变量的拼接:
- name = "小明"; age = 25
- s = f"你好,我是{name},今年{age}岁" → "你好,我是小明,今年25岁"
- 纯字面量拼接(如 "a" + "b" + "c")会被Python编译器自动优化,效率没问题
大量字符串拼接(比如循环中累积):必须用 ''.join()
用 += 在循环里拼接字符串是常见误区——因为字符串不可变,每次 += 都会新建对象,时间复杂度接近 O(n²):
- ❌ 低效:s = ""; for x in lst: s += x
- ✅ 高效:s = ''.join(lst) 或 s = ''.join([x for x in lst])
- 如果需条件拼接,可用生成器表达式:''.join(x for x in lst if x)
需要格式化或分隔符时:join() 和 format/f-string 各有优势
比如把列表 ["apple", "banana", "cherry"] 拼成逗号分隔的字符串:
立即学习“Python免费学习笔记(深入)”;
- ', '.join(["apple", "banana", "cherry"]) → "apple, banana, cherry"
- 若要加前缀/后缀,f-string 更自然:f"水果:{', '.join(lst)}"
- 避免用 "%s, %s" % (a, b) 或 "{} {}".format(a, b) 做简单拼接,它们更重、更慢
基本上就这些。记住:日常写代码优先用 f-string;拼很多项时改用 join();别在循环里 += 字符串。不复杂但容易忽略。










