我不明白为什么范围函数增量参数适用于切片运算

2024-04-23 16:51:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习切片运算符,我有一个问题。你知道吗

kist = list(range(0,90,2))

bist = kist[::10]
print(bist)

出于某种原因,这会打印出20的乘法器。 我意识到这是因为我在range函数中加了'2'。但是我试着在没有for循环的情况下打印10的乘法器。我可以写5而不是10,但为什么?为什么范围函数的增量也适用于切片运算符?你知道吗

我在用手机写作。我找不到如何将代码放入代码片段中。如果我有任何错误,也请原谅我的写作。你知道吗

编辑:好的,谢谢大家。我工作了好几个小时,搞不懂发生了什么事。我对编程很陌生。谢谢你的帮助。你知道吗


Tags: 函数代码for情况切片range运算符增量
2条回答

这其实很简单。你的

klist = list(range(0,90,2))

生成一个

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, ... 88]

当你把它的每10个元素切片,你会得到20的倍数,原因很明显。你知道吗

因此,根据它的定义range(start, stop[, step]),你有一个范围: kist = [0, 2, 4, ... 86, 88] 当您执行print(kist[::10])时,您正在打印列表中的每一个第N个(即第10个)元素。所以,你的情况是:

your list: [0,  2,  4,  6,  8, 10, 12, 14, 16, 18, 20, 22, ..., 88]
item ID:    0   1   2   3   4   5   6   7   8   9  10  11  ...
                         this one is to be printed ^^ due to your slicing every 10th item

相关问题 更多 >