从子列表中切片元素-Python

从子列表中切片元素-Python,python,list,slice,Python,List,Slice,我想从以下位置返回数字5: list_1 = [[1, 2, 3], [4, 5, 6]] 我认为这会奏效,但事实并非如此: print(list_1[1:1]) 它返回一个空列表。它是索引1(第二个列表)和位置1(列表中的第二个数字) 这不应该吗?您需要两个单独的操作: sub_list = list_1[1] item = sub_list[1] # or shortly list_1[1][1] 您所做的是调用slice接口,该接口的接口为[from:to:step]。所以它的意思是

我想从以下位置返回数字5:

list_1 = [[1, 2, 3], [4, 5, 6]]
我认为这会奏效,但事实并非如此:

print(list_1[1:1])
它返回一个空列表。它是索引1(第二个列表)和位置1(列表中的第二个数字)


这不应该吗?

您需要两个单独的操作:

sub_list = list_1[1]
item = sub_list[1]
# or shortly list_1[1][1]
您所做的是调用slice接口,该接口的接口为
[from:to:step]
。所以它的意思是:“给我从索引1到索引1的所有项目”(阅读关于切片的更多信息)


第一个[1]给出[4,5,6]。下一个[1]为您提供了5个列表[1,2,3],[4,5,6]]

然后

然后


根据评论编辑更正

假设我们有一个列表:

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

list_1[1][1:1]=5
不正确。你也应该使用
=
而不是
=
。是的,你是对的。我的意思是代表每一个人。将“=”替换为“=”将使每一行都为“真”
>>> x = [1, 2, 3]
>>> x[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