Skip to main content
 首页 » 编程设计

python之访问嵌套列表中的元素

2025年05月04日16sxdcgaq8080

我在一个名为“train_data”的嵌套列表中有元素,如示例所示:

[0] [0.935897, 1.0, 1.0, 0.928772, 0.053629, 0.0, 39.559883, 0.009494, 0] 
[1] [0.467681, 1.0, 1.0, 0.778987, 0.069336, 0.0, 56.571999, 0.024675, 0] 
[2] [0.393258, 1.0, 1.0, 0.843201, 0.068779, 0.0, 66.866669, 0.069206, 1] 

我想访问具有前 8 列的所有行(除最后一列外的所有行),以及仅具有最后一列的所有行。我需要在没有 for 循环的情况下,在一行代码中完成此操作。

我试过这样的:

print train_data[0][:] 
print train_data[:][0] 

但这给了我相同的结果:

[0.935897, 1.0, 1.0, 0.928772, 0.053629, 0.0, 39.559883, 0.009494, 0] 
[0.935897, 1.0, 1.0, 0.928772, 0.053629, 0.0, 39.559883, 0.009494, 0] 

有人可以帮我吗?

编辑:

抱歉,第一个查询的预期输出是:

[0.935897, 1.0, 1.0, 0.928772, 0.053629, 0.0, 39.559883, 0.009494] 
[0.467681, 1.0, 1.0, 0.778987, 0.069336, 0.0, 56.571999, 0.024675] 
[0.393258, 1.0, 1.0, 0.843201, 0.068779, 0.0, 66.866669, 0.069206] 

第二个查询是:

[0] 
[0] 
[1] 

请您参考如下方法:

您可以使用[:-1] 切片获取除最后一个元素之外的所有元素!

>>> l1=[0.935897, 1.0, 1.0, 0.928772, 0.053629, 0.0, 39.559883, 0.009494, 0] 
>>> l2=[0.467681, 1.0, 1.0, 0.778987, 0.069336, 0.0, 56.571999, 0.024675, 0] 
>>> l3=[0.393258, 1.0, 1.0, 0.843201, 0.068779, 0.0, 66.866669, 0.069206, 1] 
>>> l=[l1,l2,l3] 
>>> [i[:-1] for i in l] 
[[0.935897, 1.0, 1.0, 0.928772, 0.053629, 0.0, 39.559883, 0.009494], [0.467681, 1.0, 1.0, 0.778987, 0.069336, 0.0, 56.571999, 0.024675], [0.393258, 1.0, 1.0, 0.843201, 0.068779, 0.0, 66.866669, 0.069206]]