如何将CSV导入的分号分隔字符串列表转换为列表的列表?
将分号分隔的字符串数组转换为嵌套列表
你给出的输入数组是:
arr = ['foo1;foo2;foo3', 'baa1;baa2;baa3', 'bla1;bla2;bla3']
目标是转换成这样的嵌套列表:
arr2 = [['foo1', 'foo2', 'foo3'], ['baa1', 'baa2', 'baa3'], ['bla1', 'bla2', 'bla3']]
其实这个需求用Python实现起来非常直接,下面给你两种常用的方式:
方式一:简洁的列表推导式(推荐)
这是Python里处理这类转换最优雅的方式,一行代码就能搞定:
arr = ['foo1;foo2;foo3', 'baa1;baa2;baa3', 'bla1;bla2;bla3'] arr2 = [item.split(';') for item in arr]
原理说明:
- 我们遍历原数组
arr中的每一个字符串元素item - 对每个
item调用split(';')方法:这个方法会把字符串按照分号;作为分隔符,拆分成一个子列表。比如'foo1;foo2;foo3'.split(';')会直接返回['foo1', 'foo2', 'foo3'] - 列表推导式会自动把所有拆分后的子列表收集起来,最终形成你需要的嵌套列表
arr2
方式二:循环+append(更直观,适合新手理解)
如果你觉得列表推导式有点抽象,也可以用显式的循环和append操作来实现,逻辑是完全一样的:
arr = ['foo1;foo2;foo3', 'baa1;baa2;baa3', 'bla1;bla2;bla3'] arr2 = [] # 先初始化一个空的结果列表 for item in arr: # 把当前字符串按分号拆分成子列表 sub_list = item.split(';') # 将子列表添加到结果列表中 arr2.append(sub_list)
运行上面任意一段代码,打印arr2都会得到你想要的结果。
内容的提问来源于stack exchange,提问作者user12297342
相关产品推荐
相关产品推荐

