Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码实现了在一个列表中每间隔n
个数取一个元素的功能。
本篇阅读的代码片段来自于30-seconds-of-python。
every_nth
def every_nth(lst, nth):
return lst[nth - 1::nth]
# EXAMPLES
print(every_nth([1, 2, 3, 4, 5, 6], 2)) # [ 2, 4, 6 ]
every_nth
函数接收一个列表和间隔数nth
,返回列表的取值结果。
函数使用列表切片的方式,获取原列表每间隔nth
个元素取值的结果。
s[i:j:k]
的形式是s
从i
到j
步长为k
的切片。s
从i
到j
步长为k
的切片被定义为所有满足0 <= n < (j-i)/k
的索引号x = i + n*k
的项组成的序列。 换句话说,索引号为i
,i+k
,i+2*k
,i+3*k
,以此类推,当达到j
时停止 (但一定不包括j
)。 当k
为正值时,i
和j
会被减至不大于len(s)
。 当k
为负值时,i
和j
会被减至不大于len(s) - 1
。 如果i
或j
被省略或为None
,它们会定义为列表一端可以达到的“终止”值 (是哪一端的终止值则取决于k
的符号)。 请注意,k
不可为零。 如果k 为
None,则当作1
处理。
因为列表的索引是从0
开始的,所以第一个被取出的数的索引是nth-1
。因为j
被省略,所以会一直计算到列表的末端。我们使用一个不那么“恰好”的例子看一下:
>>> every_nth([1, 2, 3, 4, 5, 6, 7], 2) # [ 2, 4, 6 ]
[2, 4, 6]
声明:本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。