要将类似数组的数据从字符串转换为二维数组,通常需要经过以下几个步骤:
假设我们有一个CSV格式的字符串,每行代表一个数组,行内的元素用逗号分隔:
csv_string = """1,2,3
4,5,6
7,8,9"""
def string_to_2d_array(csv_str):
# 使用换行符分割字符串为行列表
lines = csv_str.strip().split('\n')
# 对每一行使用逗号分割,并将结果存储到二维数组中
array_2d = [line.split(',') for line in lines]
# 将字符串元素转换为整数(或其他需要的类型)
array_2d = [[int(num) for num in row] for row in array_2d]
return array_2d
result = string_to_2d_array(csv_string)
print(result) # 输出: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
问题:字符串格式不规范,如存在多余的空格或不一致的分隔符。 解决方法:
strip()
去除每行两端的空格。import re
def robust_string_to_2d_array(csv_str):
lines = csv_str.strip().split('\n')
array_2d = []
for line in lines:
# 使用正则表达式去除多余的空格并分割
row = re.split(r'\s*,\s*', line)
array_2d.append([int(num) for num in row])
return array_2d
# 示例使用
robust_result = robust_string_to_2d_array("1, 2, 3\n4 ,5, 6\n7,8,9")
print(robust_result) # 输出: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
通过这种方式,可以有效地处理各种格式不规范的数据,并将其转换为所需的二维数组结构。
领取专属 10元无门槛券
手把手带您无忧上云