在 Python 中,将字符串(str)转换为列表(list)有几种常见的方法,具体取决于你的需求,以下是几种主要的方法及其适用场景:

直接使用 list() 函数
将字符串的每个字符作为列表的元素。
s = "hello" lst = list(s) print(lst) # 输出: ['h', 'e', 'l', 'l', 'o']
适用场景:需要逐个字符处理字符串时。
按分割字符串
使用 split() 方法按指定分隔符将字符串分割成列表。
按空格分割(默认)
s = "hello world" lst = s.split() print(lst) # 输出: ['hello', 'world']
按其他字符分割
s = "apple,banana,cherry"
lst = s.split(',')
print(lst) # 输出: ['apple', 'banana', 'cherry']
限制分割次数
s = "a,b,c,d"
lst = s.split(',', 2) # 最多分割2次
print(lst) # 输出: ['a', 'b', 'c,d']
适用场景:处理 CSV、日志文件等按特定分隔符分隔的数据。

按固定长度分割字符串
使用列表推导式或 for 循环将字符串分割为指定长度的子串列表。
s = "abcdefghij" n = 2 # 每个子串长度为2 lst = [s[i:i+n] for i in range(0, len(s), n)] print(lst) # 输出: ['ab', 'cd', 'ef', 'gh', 'ij']
适用场景:需要将字符串按固定长度分组时(如处理二进制数据)。
使用正则表达式分割
对于复杂的分割规则(如按多个分隔符或模式分割),可以用 re.split()。
import re s = "apple, banana; cherry|orange" lst = re.split(r'[,;|]\s*', s) # 按逗号、分号或竖线分割,并忽略空格 print(lst) # 输出: ['apple', 'banana', 'cherry', 'orange']
适用场景:需要灵活匹配多种分隔符或复杂模式时。

转换为字符编码列表
将字符串的每个字符转换为对应的 ASCII/Unicode 编码列表。
s = "ABC" lst = [ord(c) for c in s] print(lst) # 输出: [65, 66, 67]
适用场景:需要处理字符编码时(如加密、压缩)。
使用 map() 函数
对字符串的每个字符应用函数(如转换为大写)。
s = "hello" lst = list(map(str.upper, s)) print(lst) # 输出: ['H', 'E', 'L', 'L', 'O']
适用场景:需要对每个字符执行统一操作时。
| 方法 | 示例 | 输出 | 适用场景 |
|---|---|---|---|
list(s) |
list("abc") |
['a', 'b', 'c'] |
拆分为字符列表 |
s.split() |
"a b".split() |
['a', 'b'] |
按空格分割 |
s.split(sep) |
"a,b".split(",") |
['a', 'b'] |
按指定分隔符分割 |
| 列表推导式 | [s[i:i+2] for i in range(0, len(s), 2)] |
['ab', 'cd'] |
固定长度分组 |
re.split() |
re.split(r'[,;]', "a,b;c") |
['a', 'b', 'c'] |
复杂模式分割 |
ord(c) |
[ord(c) for c in "A"] |
[65] |
字符编码列表 |
根据你的具体需求选择合适的方法!
