Python - String
基础
字符串是由独立字符组成的一个序列,通常包含在
'...'
、"..."
、"""..."""
中
1 | name = 'jason' |
1 | s1 = 'rust' |
便于在字符串中,内嵌带引号的字符串
1 | s = "I'm a string" |
"""..."""
常用于多行字符串,如函数注释
Python 支持转义字符
1 | s = 'a\nb\tc' |
操作
字符串相当于一个由单个字符组成的数组,同样支持索引、切片和遍历等操作
1 | name = 'jason' |
遍历字符串中的每个字符
1 | name = 'jason' |
字符串是 immutable 的
1 | s = 'rust' |
只能创建新的字符串 - Python 暂无可变的字符串类型,时间复杂度往往为 O(N) - 性能会持续迭代优化
Java StringBuilder 是可变的字符串类型,无需创建新的字符串,时间复杂度为 O(1)
1 | s = 'rust' |
str1 += str2 - 原地扩充
1 | s = '' |
- 老版本 Python - O(N^2) = O(1) + O(2) + … + O(N)
- Python 2.5+,针对 str1 += str2
- 首先检测 str1 是否还有其它引用,如果没有,则会尝试原地扩充字符串 Buffer 的大小 - O(N)
string.join(iterable) - 把每个元素按照指定的格式连接起来
1 | l = [] |
string.split(separator) - 将字符串按照 separator 分割成子字符串,并返回一个分割后字符串组成的列表
1 | path = 'hive://ads/training_table' |
strip
Method | Desc |
---|---|
string.strip(str) | 去掉首尾的 str 字符串 |
string.lstrip(str) | 只去掉开头的 str 字符串 |
string.rstrip(str) | 只去掉尾部的 str 字符串 |
格式化
- 使用一个字符串作为模板,其中会有格式符
- 格式符为后续真实值预留位置,呈现真实值应该呈现的格式
string.format(args) – 最新的字符串格式化函数与规范(推荐) - Java 中模板字符串
1 | uid = 1 |
早期 Python 版本,通常使用 %
1 | uid = 1 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.