python - Lambda 函数中 if 语句的语法错误
问题描述
targetScore 是整数列表中的最大值。我将 lambda 函数与 map 一起使用。对于函数中的每个值,如果项目等于列表中的最大值,我希望 lambda 将其附加到列表“ListofIndices”。
当我尝试定义:
getter = lambda x: listofIndices.append(index(x)) if x == targetScore
我收到错误声明:
getter = lambda x: listofIndices.append(index(x)) if x == targetScore
SyntaxError: invalid syntax
解决方案
听起来您既需要过滤器又需要地图,这需要两个不同的功能:一个用于条件,一个用于转换。您可以使用列表推导来获得相同的效果:
listOfIndices = [i for i, x in enumerate(integers) if x == targetScore]
enumerate
遍历 (index, element) 对,因此您不必使用该index
方法。
推荐阅读
- regex - 选择所有以“.”开头的连续行,最后一行除外
- python - 如何在跨度(箭头)内循环抓取数据并将其全部循环到连续页面中?
- grafana - grafana 使用基于指标的普罗米修斯查询定义变量
- sql - SQL LIKE 子句的特殊模式
- vuetify.js - Vuetify分页选择的页面不显示
- xml - SAXON 忽略源 XML 中的命名空间
- json - NotesJSONNavigator 的 64k 限制?
- asp.net - 对用户进行身份验证时,ASP.NET Core Web 应用 URL 区分大小写
- ocaml - 尾递归错误:表达式具有 int 类型,但表达式应为 unit 类型
- xamarin - 无法确定安装包 com.company.appName