关于python:理解迭代

Understanding iteration

本问题已经有最佳答案,请猛点这里访问。

我刚刚开始学习Python基础知识。通过介绍Python的基础知识,我一直在使用这个迭代算法,我不知道它是如何工作的。我知道这很简单,但是作为一个新的程序员,我没有每天写代码的嗜好。

这是密码

1
2
3
4
5
for i in inputlist:
    if i > outputlist[-1]:
        outputlist.append(i)

return outputlist

输出列表实际上在做-1的含义是什么


此代码逐个遍历inputlist元素,如果inputlist中的当前元素i大于outputlist中的最后一个元素,则i将附加到输出列表中。

outputlist将是inputlist的一个增加的子序列。

我假设代码可以是这样的:

1
2
3
4
5
6
7
8
9
10
11
def f(inputlist):
    outputlist = []

    if inputlist:
        outputlist.append(inputlist[0])

    for i in inputlist:
        if i > outputlist[-1]:
            outputlist.append(i)

    return outputlist

语法outputlist[-1]获取outputlist的最后一个元素。在大多数其他语言中,它相当于outputlist[len(outputlist) - 1](考虑到基于0的列表索引)。

正如评论中所指出的,outputlist一开始不能是空的,否则我们会得到IndexError