首页 > 试题广场 >

下列程序运行结果为:a=[2, 4, 6, ...

[单选题]
下列程序运行结果为:
a=[2, 4, 6, 8, 20,30,40]
print(a[::2])
print(a[-2:])
  • [2, 6, 20, 40] [30, 40]
  • [4, 8, 30] [30, 40]
  • [2, 6, 20, 40] [40]
  • [4, 8, 30] [30]
a[-2:-1] 结果 [30] a[-2:] 结果 [30,40]
发表于 2021-03-31 18:58:15 回复(0)

此题为Python题,以下摘自网友的总结:

Python 序列的切片操作与技巧(By iFantasticMe)

对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]
请在这里输入引用内容
start_index
表示是第一个元素对象,正索引位置默认为0;负索引位置默认为 -len(consequence)
end_index
表示是最后一个元素对象,正索引位置默认为len(consequence)-1;负索引位置默认为 -1。
step
表示取值的步长,默认为1,步长值不能为0。

发表于 2019-08-31 16:51:24 回复(1)
解释一下为什么[-2:-1] 结果 [30] a[-2:] 结果 [30,40」。 因为字符串切片冒号:的右边为你第一个不想要的位置,所以只有不写才能取到最后一个,写上就取不到最后一个。
发表于 2022-08-26 15:16:35 回复(0)
正向是从0开始,反向是-1,不写就是默认从头开始,尾结束。第三个参数默认是1,即一个一个取,如果是2,就两个取一个,3就三个取一个
发表于 2021-06-21 17:26:11 回复(0)

所以-40就是副索引-1的位置么

发表于 2019-09-15 15:03:45 回复(0)
链接:https://www.nowcoder.com/questionTerminal/ddcabdbcd3194ba5822248416e5a8c1e?toCommentId=12717173
来源:牛客网
print(a[::2]) 因为2为正值,所以取的方向是正向的,且step步长为:2
print(a[-2:]) 因为默认步长step没有写,那就是默认为1,这里start没有写,应该是默认从第一位开始,-2的话就是从后往前 2 位元素所以为:[30,40]
发表于 2022-04-18 19:10:35 回复(0)
a[-2:-1] 结果 [30] a[-2:] 结果 [30,40]
发表于 2022-03-14 11:38:57 回复(0)
<p>所以,c++混进来了个python?</p>
发表于 2020-05-07 12:58:24 回复(1)
1. 不管怎么切片,先看步长的正负,分别对应从左到右和从右到左,默认为正,即1;
2. 从左到右两个位序上的参数,没指定则全取;
发表于 2023-03-12 23:16:33 回复(0)
考察:Python中切片的作用
发表于 2023-06-04 04:17:06 回复(0)
print=(a[::2])正向索引2, stpe步长为:2 , 取正向2取1,print=(a[-2:])反索引2,反正向取1 print [30,40]
发表于 2022-12-17 15:34:09 回复(0)
第一个是 从开头到结束 步长为2取 所以是2 6 8 20 而不是加2 到4再加2到8哦 第二个是 从倒数第二个开始取到最后 步长为1 所以是30和40 切片是包含 start和end的
发表于 2022-08-11 20:54:41 回复(0)
好家伙 没看清楚 大意了 [] 与 {} 太小分不清
发表于 2022-01-14 17:36:19 回复(0)
这种题目用c来写?
发表于 2020-07-27 13:40:47 回复(0)