【问题标题】:What is the right place to put "return"?“返回”的正确放置位置是什么?
【发布时间】:2019-03-25 00:53:57
【问题描述】:

我是一只新鸟,勇敢地学习一些 python。对在哪里放置返回以结束循环感到非常困惑。我了解答案中提供的代码将起作用。但我不明白为什么我自己的代码不会。 我真的很感激一些帮助!非常感谢!

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

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

    如果关键字已经 在索引中,添加 url 到关联的 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]]) 必须脱离循环?我认为在索引中的每个元素都经过之后,循环将自行终止。是真的吗?

【问题讨论】:

    标签: python for-loop return


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      在上面提到的测验中,如果以前没有新的 [keword,[url]] 项目,则应该附加它。 你只能说你检查了整个数据结构之后,因此在循环之后。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-23
        • 2015-01-04
        • 2013-03-25
        • 2017-09-14
        • 2018-09-12
        • 2021-06-12
        • 1970-01-01
        相关资源
        最近更新 更多