如何提取列表各元素的第2列生成数据集,无需使用for循环
解决方案
以下是几种比普通for循环更简洁高效的实现方式(默认基于Python环境,其他编程语言可参考对应逻辑实现):
- 列表推导式
是最常用的轻量化替代方案,执行效率比基础for循环高30%左右,语法简洁易读。假设原始嵌套列表名为raw_data,实现代码如下:# Python为0基索引,索引1对应第2列 dataset = [item[1] for item in raw_data] - map高阶函数实现
适合函数式编程场景,执行效率和列表推导式接近:from operator import itemgetter dataset = list(map(itemgetter(1), raw_data)) - numpy向量化操作(适合大规模数值型数据集)
完全规避Python层面的循环,数据量越大,效率提升幅度越明显:import numpy as np raw_arr = np.array(raw_data) # 提取所有行的第2列 dataset = raw_arr[:, 1] - Pandas实现(适合结构化数据集场景)
如果后续需要做数据清洗、统计分析等操作,用Pandas处理会更方便:import pandas as pd df = pd.DataFrame(raw_data) # 提取结果为numpy数组,追加.tolist()可转为普通列表格式 dataset = df[1].values
内容的提问来源于stack exchange,提问作者student
相关产品推荐
相关产品推荐

