我想从此返回数字5:
list_1 = [[1, 2, 3], [4, 5, 6]]
我认为这样可行,但事实并非如此:
print(list_1[1:1])
它返回一个空列表。它是索引1(第二个列表)和位置1(列表中的第二个数字)。
不应该这样吗?
答案 0 :(得分:3)
您需要两个单独的操作:
sub_list = list_1[1]
item = sub_list[1]
# or shortly list_1[1][1]
您所做的是调用具有[from:to:step]
接口的切片界面。所以它意味着:"给我所有项目从索引1到索引 1" (阅读有关切片的更多信息)。
答案 1 :(得分:1)
list_1[1][1]
第一个[1]给你[4,5,6]。下一个[1]给你5
答案 2 :(得分:1)
list_1 = [[1,2,3],[4,5,6]]
然后
list_1[0] == [1,2,3]
list_1[1] == [4,5,6]
然后
list_1[1][1:1] == [] #slice starting from position '1', and around to the position before '1', effectively returning an empty list
list_1[1][1] == 5
从评论中编辑更正
答案 3 :(得分:0)
我们说我们有一个清单:
list_1 = [[1, 2, 3], [4, 5, 6]]
你问的是,为什么
list_1[1:1]
返回[]
?
因为您要求从索引1到索引1的对象,这是什么。
拿一个简单的清单:
>>> x = [1, 2, 3]
>>> x[1:1]
[]
这也是空的,因为您要求索引1到索引1的所有对象。
所有第二个数字都表示最大覆盖率不包含。所以......
>>> x = [1, 2, 3]
>>> x[1:10000]
[2, 3]
>>> x[1:-1023]
[]
>>> x[1:2]
[2]
如果第一个数字等于或大于第二个数字,除非您更改切片的步骤,否则您最终会得到一个空列表(如果它是'等于,它总是空的)
在二维数组中,如果你想要列表中第二个列表的第二个对象:
>>> list_1[1]
[4, 5, 6]
>>> list_1[1][1]
5