为什么打印[0] [:0:]给出的答案与打印[0] [0]不同? (Python多维数组)

时间:2015-12-11 02:36:45

标签: python arrays multidimensional-array

假设我有数组a:

a = [[1.0,2.5,3.0],[2.0,5.0,3.0]]

为什么要做print a[0][:0:]输出:

[]

同时执行print a[0][0]输出(数组中第一个数组中的第一个项目):[1.0]

我最终想要采用多维数组的移动平均线。我想确保我首先理解语法。

2 个答案:

答案 0 :(得分:3)

出于同样的原因[1, 2, 3][0]给出[1, 2, 3][:0:]的不同答案。

[0]将为索引0处的元素提供[:0:](或更简单地[:0])将从列表开头的所有元素提供给之前的 >索引0处的元素(当然是空列表)。

[0]是一个索引查找,[:0:]是切片表示法,所以它们是完全不同的东西。

答案 1 :(得分:1)

这个print a[0][0]指的是1d第一个元素中第二个元素。

print a[0][:0:]表示切片表示法:

a[start:end] # items start through end-1
a[start:]    # items start through the rest of the array
a[:end]      # items from the beginning through end-1
a[:]         # a copy of the whole array

Explain Python's slice notation