ladynora 发表于 2020-4-1 15:31:26

列表步长的问题

1.什么是步长?

2.下面这个列表中的两个“:”的作用我不太理解,为什么可以空一个数字打印呢?{:9_241:}

>>> list1 =
>>> list1[-3:-1]

>>> list1[::2]

>>> list1[::-2]

>>>

谢谢!

永恒的蓝色梦想 发表于 2020-4-1 15:37:27

list1[::-2] 相当于list1

十月故里 发表于 2020-4-1 15:39:29

list可以指定三个参数
list
start指定开始的索引位置,空着表示从头开始索引
stop结束的索引位置,空着表示索引到最后
step步长,设置了就按你设置的步长来步进

>>> list1=
>>> list1[::1]

>>> list1[::2]

>>> list1

>>> list1

sunrise085 发表于 2020-4-1 15:45:05

本帖最后由 sunrise085 于 2020-4-1 15:46 编辑

list的下标有两种方式
第一种从前向后:以0 开始,0,1,2,3……
第二种从后向前:一-1开始,……-3,-2,-1
例如:
list1=
正下标: 0 , 1,2,3,4,5
负下标:-6, -5, -4, -3, -2, -1

1、步长就是每次跨过几个,例如:list1 = ,步长为2 切片的话,得到的就是越过了 3,9, 8
2、list1   其中m是切片的起始位置,默认为0,n是切片的终止位置(不含)默认为结尾,l是步长,默认为1
三个值都可以使用默认值,省略步长l的时候,可以不写第二个冒号,但是若需要自定义步长l,则前面的两个冒号都要写
全部切片则是list1[:]
list1[::2]就是从list1的全部元素中进行切片,步长为2,步长是正数,从下标为0 的元素开始切片,得到的是
list1[::-2]就是从list1的全部元素中进行切片,步长为-2,步长是负数,从下标为-1 的元素开始切片,得到的是

dlnb526 发表于 2020-4-1 15:46:48

本帖最后由 dlnb526 于 2020-4-1 15:49 编辑

您好,步长就是设定一个常值指定两个元素之间的间隔。就像是人走路走出一步的距离相同。

第二个问题需要认真学习切片部分。
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
你一定知道下面代码的结果
>>> L
['Michael', 'Sarah', 'Tracy']

可以通过切片轻松取出某一段数列。如果换一个列表进行选取,比如列表里是0-99,
L = range(100)

那么前10个数:
>>> L[:10]

后10个数:
>>> L[-10:]


也可以通过L实现,也就是说索引可以是负数

前10个数,每两个取一个:

>>> L[:10:2]


这里2就是步长。

所有数,每5个取一个:
>>> L[::5]

甚至什么都不写,只写[:]就可以原样复制一个list:
>>> L[:]

试试上面几个例子,希望对你有所帮助

Twilight6 发表于 2020-4-1 17:21:32

{:10_254:} {:10_254:} {:10_254:} {:10_254:} {:10_254:} {:10_254:} {:10_254:} {:10_254:} {:10_254:}

没那么标准哈,

zltzlt 发表于 2020-4-1 17:31:14

1. 步长就是跳几步取一个元素。

2. 切片的格式是 list,start、stop、step 都可以省略。

    如果省略,start 为 0,stop 为列表的长度。
    所以 list1[::2] 相当于 list1(因为 list1 的长度是 2),跳 2 步取一个元素:

    [1, 3, 2, 9, 7, 8]
页: [1]
查看完整版本: 列表步长的问题