Python如何打印嵌套数字序列中最后一个列表的末尾数值
问题根因
你定义嵌套列表的语法错误,才会出现取值不符合预期、索引报错的问题。
你写的x=[第一个列表][第二个列表][第三个列表]...的写法不符合Python嵌套列表的定义规则,Python会把这种写法判定为对前一个列表执行索引操作,最终得到的x完全不是你预期的嵌套序列结构。
修复步骤
- 按照正确语法定义嵌套列表:外层用方括号包裹所有子列表,子列表之间用英文逗号分隔,示例代码如下:
import numpy as np nan = np.nan # 正确的嵌套列表定义 x = [ [nan,nan,nan,nan,nan,nan,nan,nan,9], [nan,nan,nan,nan,nan,nan,nan,8,9], [nan,nan,nan,nan,nan,nan,7,8,9], [nan,nan,nan,nan,nan,6,7,8,9], [nan,2,3,4,5,6,7,8,9], [1,2,3,4,5,6,7,8,9] ]
- 用
x[-1][-1]即可取出最后一个列表的最后一个数值,执行print(x[-1][-1])会输出结果9。
其他异常表现说明
- 你之前执行
print(x[-1])输出1到9的全量元素,是因为错误定义后x本身就是最后那组一维列表,如果输出全量元素说明你的x实际是可迭代的非列表结构(比如numpy一维数组),可以执行print(type(x))确认变量类型。 - 你写的
x2.append(x[-1])后调用print(x2[1])本来会触发索引越界错误,能输出和之前一致的结果也是因为x的实际结构不符合预期导致的,修复x的定义后即可避免这类异常。
内容的提问来源于stack exchange,提问作者leasthollow
相关产品推荐
相关产品推荐

