杰瑞科技汇

Python string转list有哪些方法?

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

Python string转list有哪些方法?-图1
(图片来源网络,侵删)

直接使用 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、日志文件等按特定分隔符分隔的数据。

Python string转list有哪些方法?-图2
(图片来源网络,侵删)

按固定长度分割字符串

使用列表推导式或 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']

适用场景:需要灵活匹配多种分隔符或复杂模式时。

Python string转list有哪些方法?-图3
(图片来源网络,侵删)

转换为字符编码列表

将字符串的每个字符转换为对应的 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] 字符编码列表

根据你的具体需求选择合适的方法!

分享:
扫描分享到社交APP
上一篇
下一篇