当前位置: 首页 > 面试题库 >

平方列表中的所有元素

庞旺
2023-03-14
问题内容

有人告诉我

编写一个函数square(a),该函数接受一个数字数组a并返回一个包含每个平方值的数组。

起初,我有

def square(a):
    for i in a: print i**2

但是,由于我正在打印,而且没有像被问到的那样返回,因此这不起作用。所以我尝试了

    def square(a):
        for i in a: return i**2

但这仅平方我数组的最后一个数字。我如何才能使整个列表平方?


问题答案:

您可以使用列表理解:

def square(list):
    return [i ** 2 for i in list]

或者您可以map

def square(list):
    return map(lambda x: x ** 2, list)

或者,您可以使用发电机。它不会返回列表,但是您仍然可以迭代它,并且由于不必分配整个新列表,因此它可能比其他选项更节省空间:

def square(list):
    for i in list:
        yield i ** 2

或者,您也可以执行无聊的旧for循环,尽管这并不像某些Python程序员所希望的那样惯用:

def square(list):
    ret = []
    for i in list:
        ret.append(i ** 2)
    return ret


 类似资料:
  • 问题内容: 我有一个对象列表,其中每个对象返回。我如何使用Java 8流仅获得一个? 类具有以下方法; 我有 我正在尝试的是 但是上面的行没有返回 ,而是 我不想要的。 问题答案: 您应该用来从包含在主列表中每个对象中的列表中创建一个列表。请检查; 该调用适用于列表中包含with 的情况,因为这将导致下一行,因此我们应该将其过滤掉。还有其他方法可以实现这一点; -- -- 您可以按如下方式包含来自

  • 我是冬眠新手,不会RTFM,所以我希望有人能帮我节省很多时间。 我的数据库中的对象之间有多对多的关系。假设员工和工作。 我想选择分配给给定员工的所有作业。我的对象乔布斯有一个正在处理它的所有员工的列表。所以,在java中,它应该是:作业job.employees.contains(员工)。除了我需要把它变成一个Hibernate查询什么的。 现在,我在选择所有东西后,正在Java中使用蛮力。 如何

  • 我读到我可以在缓存更新时驱逐整个缓存,但我想避免类似的事情: 有什么方法可以在缓存的集合中创建/更新/删除值吗?还是将集合中的所有值缓存为单个键?

  • 我在使用for循环将元素分配到List时遇到了麻烦。以下是我遇到麻烦的代码部分: 出于某种原因,该方法返回一个所有元素完全相同的列表。我试着输出列表元素,看看这是在哪里发生的,它似乎是在循环之外发生的。例如: 显示不同元素的列表,而这: 显示仅由相同元素组成的列表。在我看来,这些元素被正确地添加到for循环内部的列表中,但最终却变得完全相同。这是为什么?我该怎么解决?

  • 假设我有一个由n个字符串列表组成的列表: result->包含所有输出列表(所有组合) current->是当前的组合 用上述相同示例调用此函数时的输出:

  • 问题内容: 我有这样的df: 以及物品清单: 我的目标是从中获取至少包含2个元素的所有行。 我想出了以下解决方案: 这给了我我想要的,但是就可伸缩性而言,它可能不是最佳的解决方案。是否有任何“向量化”解决方案?谢谢 问题答案: 我会建立一个Series列表,然后应用vectorized : 它给出了预期的结果: