如何从二维列表中提取所有第二个索引的值并生成新列表/数组?
解决方法
你的代码逻辑完全错误,才会触发这个报错。for i in lst[0][i]里的i在循环启动前根本没定义,而且你遍历的是第一个元素的某个未知位置,这和你要提取所有元素第二个索引值的需求完全不匹配。
正确实现方式:
1. 普通for循环写法
lst2 = [] for elem in lst: lst2.append(elem[1])
直接遍历lst里的每一个元素elem,把每个元素的第二个索引值(elem[1])添加到新列表lst2即可。
2. 列表推导式(更简洁高效)
lst2 = [elem[1] for elem in lst]
这是Python里常用的简化写法,和上面的循环逻辑完全一致,代码更紧凑。
3. 转为numpy数组(如果需要数组而非列表)
如果最终需要的是数组类型,可以用numpy处理:
import numpy as np result_arr = np.array(lst)[:, 1]
[:, 1]表示提取数组中所有行的第二列元素。
额外注意点
你提到lst[1141][1],但你的列表只有1141个元素,Python列表索引从0开始,合法索引范围是0到1140,lst[1141]会触发索引越界错误,记得修正这个问题。
内容的提问来源于stack exchange,提问作者AnonAstroJ
相关产品推荐
相关产品推荐

