如何拆分coordinates嵌套子列表且保留原列表结构?
解决方法:嵌套处理保留原列表结构
没问题,这个需求很容易实现!咱们可以用嵌套列表推导式或者嵌套循环来处理,既能拆分每个字符串元素,又能完美保留原列表的层级结构。
方法1:创建新列表(推荐,不修改原数据)
这种方式不会改动原始的coordinates列表,适合需要保留原数据的场景:
# 生成处理后的新列表 processed_coordinates = [ [item.strip().split() for item in sublist] for sublist in coordinates ]
代码解释:
- 外层推导式遍历原列表的每一个子列表
sublist - 内层推导式针对子列表里的每个字符串
item:strip():先去掉字符串首尾的空白(包括你例子里末尾的换行/空格,避免拆分后出现空字符串)split():默认按任意空白字符拆分(单个空格、多个连续空格、制表符都能处理),直接得到数字组成的子列表
处理后你就能实现需求:
processed_coordinates[1][1]会返回['229', '125', '5']- 通过
processed_coordinates[i][j][k]就能获取单个数字部分(比如processed_coordinates[1][1][0]就是'229')
方法2:直接修改原列表
如果不需要保留原数据,想直接在coordinates上修改,可以用嵌套循环:
# 遍历外层列表的每个子列表 for i in range(len(coordinates)): # 遍历子列表里的每个元素 for j in range(len(coordinates[i])): # 拆分字符串并替换原位置的元素 coordinates[i][j] = coordinates[i][j].strip().split()
这个方法执行后,原coordinates列表就会直接变成你想要的结构,不需要额外存储新列表。
内容的提问来源于stack exchange,提问作者curious_cosmo
相关产品推荐
相关产品推荐

