放置“返回”的正确位置是什么?

时间:2019-03-25 00:53:58

标签: python for-loop return

我是新来的大鸟,因为大胆学习一些Python。对于将收益放在何处结束循环感到困惑。我了解答案中提供的代码将起作用。但是我不明白为什么我自己的代码不会。 我真的很感谢您的帮助!非常感谢你!

测验是: 定义一个过程,add_to_index, 需要3个输入:

  • 索引:[[,[,...]],...]
  • 关键字:字符串
  • 一个网址:字符串

    如果关键字已经存在 在索引中,添加网址 到相关的URL列表 使用该关键字。

    如果关键字不在索引中, 在索引中添加一个条目:[keyword,[url]]

我的代码是:

index = []
def add_to_index(index,keyword,url):
    for element in index:
        if element[0] == keyword:
            element[1].append(url)
        else:
            index.append([keyword,[url]])
        return index

给出的答案是:

index = []
def add_to_index(index,keyword,url):
    for element in index:
        if element[0] == keyword:
            element[1].append(url)
            return
    index.append([keyword,[url]])

为什么index.append([keyword,[url]])必须退出循环?我认为在索引中的每个元素都经过之后,循环将自行终止。是真的吗?

2 个答案:

答案 0 :(得分:1)

您的代码将在循环第一次执行时返回,无论它是否在if / else之外。给定的答案仅在满足条件时返回

答案 1 :(得分:0)

请注意,根据其定义,循环遍历所有可迭代项。

在上述测验中,如果以前没有[keword,[url]]项目,则应添加该项目。 您只能告诉之后,您检查了整个数据结构,因此在循环之后。

请注意,只有在循环的任何迭代中找到“关键字”时,解释器才会运行“ return”语句。它的目的只是在实现所需功能后立即停止执行该功能。因此,返回的内容将返回“无”(更确切地说是无)。