切片列表后未显示最后一个值
Last value not showing up after slicing list
Av = [32,5,3,1,3,4,5]
A = Av[0:int(len(Av)/2)]
B = Av[int(len(Av)/2):-1]
print(A,B)
当我运行这段代码时,我得到
[32, 5, 3] [1, 3, 4]
Av 的最后一个值为 5。但它没有出现在列表 B..
在python中,当你使用索引切片Av[a:b]
时,你得到从位置a
(包括)到位置b
(排除)的元素。因为 -1 指的是最后一个位置,所以如果你这样做 Av[a:-1]
,最后一个元素将不会被包括在内。
如果要包含最后一个元素,只需省略最后的索引-1,即使用Av[a:]
。你的代码应该是这样的:
Av = [32,5,3,1,3,4,5]
A = Av[0:int(len(Av)/2)]
B = Av[int(len(Av)/2):]
print(A,B)
看看 答案。它非常清楚地解释了索引切片是如何工作的。
当您使用切片 [x:-1]
时,它不包含索引 -1
(最后位置)处的值,因为它是非包含的。
相反,使用 [x:]
,这将给出一个包含 x
及其右侧所有值的切片:
B = Av[int(len(Av)/2):]
输出:
>>>B
>>>[1, 3, 4, 5]
这是因为你已经将列表切片到-1,这意味着数组的最后一个元素并被排除在切片数组之外。
要将数组切片到最后,请将切片代码的末尾部分留空。像这样-
B = Av[int(len(Av)/2):]
Av = [32,5,3,1,3,4,5]
A = Av[0:int(len(Av)/2)]
B = Av[int(len(Av)/2):-1]
print(A,B)
当我运行这段代码时,我得到
[32, 5, 3] [1, 3, 4]
Av 的最后一个值为 5。但它没有出现在列表 B..
在python中,当你使用索引切片Av[a:b]
时,你得到从位置a
(包括)到位置b
(排除)的元素。因为 -1 指的是最后一个位置,所以如果你这样做 Av[a:-1]
,最后一个元素将不会被包括在内。
如果要包含最后一个元素,只需省略最后的索引-1,即使用Av[a:]
。你的代码应该是这样的:
Av = [32,5,3,1,3,4,5]
A = Av[0:int(len(Av)/2)]
B = Av[int(len(Av)/2):]
print(A,B)
看看 答案。它非常清楚地解释了索引切片是如何工作的。
当您使用切片 [x:-1]
时,它不包含索引 -1
(最后位置)处的值,因为它是非包含的。
相反,使用 [x:]
,这将给出一个包含 x
及其右侧所有值的切片:
B = Av[int(len(Av)/2):]
输出:
>>>B
>>>[1, 3, 4, 5]
这是因为你已经将列表切片到-1,这意味着数组的最后一个元素并被排除在切片数组之外。
要将数组切片到最后,请将切片代码的末尾部分留空。像这样-
B = Av[int(len(Av)/2):]