列表理解中的 if/else

2024-02-25

我有一个清单xs包含字符串的混合物和None价值观。如何使用列表理解在每个字符串上调用函数,但将None价值观''(而不是将它们传递给函数)?

I tried:

[f(x) for x in xs if x is not None else '']

但它给出了SyntaxError。正确的语法是什么?


See List comprehension with condition https://stackoverflow.com/questions/24442091 if you are trying to make a list comprehension that omits values based on a condition.

If you need to consider more than two conditional outcomes, beware that Python's conditional expressions https://stackoverflow.com/questions/394809/ do not support elif. Instead, it is necessary to nest if/else conditionals. See `elif` in list comprehension conditionals https://stackoverflow.com/questions/9987483 for details.


你完全可以做到这一点。这只是一个顺序问题:

[f(x) if x is not None else '' for x in xs]

一般来说,

[f(x) if condition else g(x) for x in sequence]

并且,对于列表理解if仅条件,

[f(x) for x in sequence if condition]

请注意,这实际上使用了不同的语言构造,条件表达式 https://docs.python.org/3/reference/expressions.html#conditional-expressions,它本身不属于理解语法 https://docs.python.org/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries,而if之后for…in是列表推导式的一部分,用于filter来自可迭代源的元素。


条件表达式可用于您想要根据某些条件在两个表达式值之间进行选择的各种情况。这与三元运算符?:存在于其他语言中 https://docs.python.org/3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator。例如:

value = 123
print(value, 'is', 'even' if value % 2 == 0 else 'odd')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列表理解中的 if/else 的相关文章

  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • MongoEngine 查询具有以列表中指定的前缀开头的属性的对象的列表

    我需要在 Mongo 数据库中查询具有以列表中任何前缀开头的特定属性的元素 现在我有一段这样的代码 query mymodel terms term in query terms 并且这会匹配在列表 term 上有一个项目的对象 该列表中的
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • puma 是唯一的多线程 Rails 4 http 服务器吗?

    我已经将我们的堆栈转换为 Rails 4 是的 我希望利用线程安全代码 Puma 的工作是起床 停止它似乎是一个不同的问题 Puma 是唯一的多螺纹导轨吗 Thin gt EventMachine Unicorn gt Forking Pu
  • git:补丁没有有效的电子邮件地址

    我有一个补丁文件 我想将此补丁应用到 git 存储库中的代码 当我使用 subversion 时 这个过程非常简单 右键 gt tortoise svn gt 应用补丁 它总是按我的预期工作 但我不能使用 git 来做到这一点 Git 不应
  • EasyAdmin 3.X - 如何查看相关实体`toString`而不是列表中关联的数量?

    我有一个实体Product与实体具有多对多关系Category ORM ManyToMany targetEntity App Domain Category inversedBy stalls private categories ret
  • ADT什么时候将BuildConfig.DEBUG设置为false?

    在最新版本的 ADT r17 中添加了生成常数BuildConfig DEBUG这是根据构建类型设置的 我遇到的问题是它永远不会设置为 false 我希望它在执行 Android 工具 gt 导出签名应用程序包 时发生变化 但它对我来说没有
  • 替换 Word 2003 文档中的 MergeFields 并保持样式

    我一直在尝试创建一个库来替换 Word 2003 文档上的 MergeFields 一切正常 除了在替换时丢失了应用于该字段的样式之外 有没有办法保留它 这是我用来替换字段的代码 private void FillFields2003 st
  • git 如何跳转到第一个提交? [复制]

    这个问题在这里已经有答案了 如何跳转到 git 存储库中的第一个提交 另外 有没有办法通过网站在Github上做到这一点 要进行存储库的第一次提交 请执行以下操作 git checkout master git log reverse 输出
  • Jquery加载然后编辑加载的内容

    我正在使用 Jquery 加载 然后一旦内容加载到 div 中 我想将一些标签更改为语言相关变量 我的问题是我必须使用 settimeout 来让脚本等待足够长的时间以便元素准备好编辑 当我使用回调函数参数时 我想要编辑的元素显然还没有准备
  • 用作 ng-if 的指令 (Angular 2)

    我正在尝试创建一个作为 ngIf 工作的指令来控制是否允许具有正确权限的用户查看特定内容 如下所示 div h3 You are allow to see this h3 div 我正在阅读有关如何做到这一点的信息 并发现了这一点doc h
  • Python 中精确的循环计时

    For 这个项目 http www samplerbox org我正在设计一个音序器 鼓机 它应该能够以精确的速度发送 MIDI 音符 示例 每 2 秒 16 个音符 即在音乐术语中 每小节 16 个 1 16 音符 BPM 120 即每
  • 为什么显示名称未显示在日历活动参加者中?

    我使用以下代码要点成功检索日历活动参加者 require once DIR vendor autoload php putenv GOOGLE APPLICATION CREDENTIALS DIR mt service account j
  • npm 只是不会安装 Node sass

    我第一次遇到这个问题是在尝试使用 ionic 时 它需要其模板的依赖关系 然后 当我尝试自己使用 npm 安装 node sass 时 问题仍然存在 这是在Windows 10 Version 1703 both nodejs 6 11 3
  • 从 Android 将联系人插入 SIM 卡

    我在尝试将 Android 联系人应用程序中存在的联系人复制到 SIM 卡时遇到问题 以下是代码 ContentValues cv new ContentValues cv put tag cName cv put number cNumb
  • 使用正则表达式,如何替换没有字符的空格?

    如何从正则表达式中替换许多空 空白字符 前任 div class someClass bunch of elements content div
  • 从另一个函数名计算一个函数名

    在 python 3 4 中 我希望能够出于测试目的制作一个非常简单的调度表 这个想法是有一个字典 键是要测试的函数名称的字符串 数据项是测试函数的名称 例如 myTestList myDrawFromTo myDrawLineDir my
  • 如何使用 animate 方法进行连续循环?

    如何使用一个连续循环动画animate 在这个例子中 我想做的就是无休止地旋转一个白色方块 myBall new Layer x 100 y 100 width 200 height 200 borderRadius 20px backgr
  • Excel VBA:获取单击按钮的行[重复]

    这个问题在这里已经有答案了 我正在尝试在 Excel 中创建一个按钮 将特定范围的单元格从活动工作簿复制到另一个工作簿 当我指定固定范围时 该范围的复制工作得很好 但我对如何找出单击的按钮的行感到困惑 每行包含 7 个左右的单元格 第 8
  • 无法获取总金额

    大家好 我已经解决了最初的问题 但现在它无法正确添加 我不确定该怎么做以及我哪里出了问题 任何帮助 将不胜感激 导入java util Scanner 公开课动物园 公共静态无效主 字符串 args int quantity confirm
  • 微调器的文本大小

    如何减小微调器的字体大小 我已将微调器大小减小到 35 像素 因此我的文本被切成两半 我怎么做 我也不希望事先选择任何东西 默认文本应该是 select some value 经过一些测试 有一个比继承 ArrayAdapter 更简单的方
  • 如何在自定义控件中包含光标(插入符号)?

    我被指派用 C 和 Windows 窗体制作自定义网格控件 我不确定的一件事是如何处理显示闪烁的光标 插入符号 以指示单元格编辑正在进行的位置以及将显示下一个字符 有谁知道这是如何使用标准文本框完成的 是否有一个标准框架结构可以为我做到这一
  • 列表理解中的 if/else

    我有一个清单xs包含字符串的混合物和None价值观 如何使用列表理解在每个字符串上调用函数 但将None价值观 而不是将它们传递给函数 I tried f x for x in xs if x is not None else 但它给出了S