从子列表中切片元素-Python
我想从以下位置返回数字5:从子列表中切片元素-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]。所以它的意思是
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