作者:会满足cy | 来源:互联网 | 2024-12-28 12:15
本文介绍如何使用Python将一个字符串按照指定的行和元素分隔符进行两次拆分,最终将字符串转换为矩阵形式。通过两种不同的方法实现这一功能:一种是使用循环与split()方法,另一种是利用列表推导式。
Python 实现字符串双拆分并转换为矩阵
在 Python 中,我们可以通过对字符串进行两次拆分操作,将一个复杂格式的字符串转换为二维列表(即矩阵)。具体来说,第一次拆分用于分割行,第二次拆分用于分割每行中的各个元素。
示例:
输入: test_str = 'Gfg,best#for,all#geeks,and,CS',row_splt = '#',ele_splt = ','
输出: [['Gfg', 'best'], ['for', 'all'], ['geeks', 'and', 'CS']]
解释: 字符串首先按行分隔符 '#' 拆分成行,然后每行再按元素分隔符 ',' 拆分为多个元素。
输入: test_str = 'Gfg!最适合!所有极客!还有!CS',row_splt = '!',ele_splt = '!'
输出: [['Gfg'], ['最适合'], ['所有极客'], ['还有'], ['CS']]
解释: 字符串按行分隔符 '!' 拆分,每个元素也由相同的分隔符 '!' 拆分。
方法 1: 使用 split() 和循环
该方法先用 split() 函数根据行分隔符生成行列表,接着遍历每一行,并再次应用 split() 函数以提取各元素。
Python 代码示例
# Python3 代码演示
# 双拆分字符串至矩阵
# 使用 split() + 循环
# 初始化字符串
test_str = 'Gfg,best#for,all#geeks,and,CS'
# 打印原始字符串
print("原始字符串为 : " + str(test_str))
# 行分隔符
row_splt = '#'
# 元素分隔符
ele_splt = ','
# 行拆分
temp = test_str.split(row_splt)
res = []
for ele in temp:
# 元素拆分
res.append(ele.split(ele_splt))
# 输出结果
print("转换后的矩阵 : " + str(res))
输出:
原始字符串为: Gfg,best#for,all#geeks,and,CS
转换后的矩阵: [['Gfg', 'best'], ['for', 'all'], ['geeks', 'and', 'CS']]
方法 2: 使用列表推导式和 split()
此方法同样实现了上述任务,但通过列表推导式简化了代码结构,使整个过程更加简洁。
Python 代码示例
# Python3 代码演示
# 双拆分字符串至矩阵
# 使用列表推导式 + split()
# 初始化字符串
test_str = 'Gfg,best#for,all#geeks,and,CS'
# 打印原始字符串
print("原始字符串为 : " + str(test_str))
# 行分隔符
row_splt = '#'
# 元素分隔符
ele_splt = ','
# 行拆分
temp = test_str.split(row_splt)
# 列表推导式作为简写
res = [ele.split(ele_splt) for ele in temp]
# 输出结果
print("转换后的矩阵 : " + str(res))
输出:
原始字符串为: Gfg,best#for,all#geeks,and,CS
转换后的矩阵: [['Gfg', 'best'], ['for', 'all'], ['geeks', 'and', 'CS']]