我需要找到第i行第j列的2D数组的元素。 我只写T [i] [j]并得到正确的结果,但是当我搜索“元素”范围时却得到了意外的结果
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
print(T[1][2])
Out[2]: 10
print(T[1:3][:2])
Out[3]: [[15, 6, 10], [10, 8, 12, 5]]
我希望打印具有第一和第二列的第二,第三行,但输出却是整个第二和第三行。
答案 0 :(得分:1)
您无法按[:2]
拆分列,[:2]
中的T[1:3][:2]
表示T[1:3]
的前两个元素(此处为行)。您可以在numpy
中进行此操作,但不能在list
中进行此操作。
您可以尝试以下方法:
[t[:2] for t in T[1:3]]
输出:
[[15, 6], [10, 8]]
答案 1 :(得分:1)
考虑第一个索引操作的输出:
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
print(T[1:3])
Out: [[15, 6, 10], [10, 8, 12, 5]]
因此,第二次索引操作只是获取其中的前两个元素,即互补行。
您要寻找的东西:
print([i[:2] for i in T[1:3]])
Out: [[15, 6], [10, 8]]
首先获取外部元素,然后获取内部元素。