列表理解中的 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 的相关文章

  • python中的编码检测库[重复]

    这个问题在这里已经有答案了 这在某种程度上与我的问题有关here https stackoverflow com questions 2305997 unicodedecodeerror problem with mechanize 我处理
  • Docker 进程被神秘的“Killed”消息杀死

    在 docker 容器中运行 python 脚本 一切似乎都运行顺利 看到一些 STDOUT 消息 大约 5 分钟后我得到了Killed消息 没有进一步的解释 并且该过程停止 查询数据库可能是磁盘空间问题 也可能是 OOM 问题 我不确定
  • 使用 GeoDjango 在坐标系之间进行转换

    我正在尝试将坐标信息添加到我的数据库中 添加django contrib gis支持我的应用程序 我正在写一个south数据迁移 从数据库中获取地址 并向 Google 询问坐标 到目前为止 我认为我最好的选择是使用geopy为了这 接下来
  • 同情因子简单关系

    我在 sympy 中有一个简单的因式分解问题 无法解决 我在 sympy 处理相当复杂的积分方面取得了巨大成功 但我对一些简单的事情感到困惑 如何得到 phi 2 2 phi phi 0 phi 0 2 8 因式分解 phi phi 0 2
  • Python 中的二进制相移键控

    我目前正在编写一些代码 以使用音频转换通过激光传输消息 文件 和其他数据 我当前的代码使用 python 中 binascii 模块中的 hexlify 函数将数据转换为二进制 然后为 1 发出一个音调 为 0 发出不同的音调 这在理论上是
  • 如何通过 Python socket.send() 发送字符串以外的任何内容

    我对 Python 编程非常陌生 但出于必要 我必须快速地将一些东西组合在一起 我正在尝试通过 UDP 发送一些数据 除了当我执行 socket send 时 我必须以字符串形式输入数据之外 一切都正常 这是我的程序 这样你就可以看到我在做
  • Python3模拟用另一个函数替换函数

    如何使用 python 中的另一个函数来模拟一个函数 该函数也将提供一个模拟对象 我有类似以下操作的代码 def foo arg1 arg2 r bar arg1 does interesting things 我想替换的实现bar函数 让
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • 出现意外的关键字参数“timeout”(Python 中的 google-cloud-storage)

    使用 google cloud storage 的 Python 项目在本地运行良好 但是当它从 App Engine 运行时 会显示错误 Traceback most recent call last File opt python3 7
  • 如何在Python中获取绝对文件路径

    给定一条路径 例如 mydir myfile txt 如何在Python中找到文件的绝对路径 例如 在 Windows 上 我最终可能会得到 C example cwd mydir myfile txt gt gt gt import os
  • 如何创建指向指针数组的 Python ctypes 指针

    我需要学习如何处理char 在下面的 C 方法中通过 Python ctypes 我通过使用调用其他只需要单个指针的方法做得很好create string buffer 但此方法需要一个指向指针数组的指针 ladybugConvertToM
  • 如何在 Numpy 中实现垃圾收集

    我有一个名为main py 它引用另一个文件Optimisers py它仅具有功能并用于for循环进入main py 这些函数都有不同的优化功能 This Optimisers py然后引用另外两个类似的文件 其中也只有函数 它们位于whi
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • pandas apply:函数名是否带引号的区别

    简单数据框定义示例 df pd DataFrame A 2 4 1 B 8 4 1 C 6 2 7 df A B C 0 2 8 6 1 4 4 2 2 1 1 7 尝试理解以下块中函数参数调用的差异 df apply sum df app
  • 通过套接字发送字符串(python)

    我有两个脚本 Server py 和 Client py 我心中有两个目标 能够从客户端一次又一次地向服务器发送数据 能够将数据从服务器发送到客户端 这是我的 Server py import socket serversocket soc
  • 通过子类化 `io.TextIOWrapper` 来子类化文件 - 但它的构造函数有什么签名?

    我正在尝试子类化io TextIOWrapper下列的这个帖子 https stackoverflow com a 23796737 974555 虽然我的目标不同 以此开始 注意 动机 https stackoverflow com a
  • 如何在 Pandas 数据框中用 NaN 替换一系列值?

    我有一个巨大的数据框 我应该如何用 NaN 替换一系列值 200 100 数据框 您可以使用pd DataFrame mask https pandas pydata org pandas docs stable generated pan
  • 在 Gensim 中通过 ID 检索文档的字符串版本

    我正在使用 Gensim 进行一些主题建模 并且已经达到使用 LSI 和 tf idf 模型进行相似性查询的程度 我取回 ID 集和相似点 例如 299501 0 64505910873413086 如何获取与 ID 在本例中为 29950
  • 在没有numpy的情况下在python中分配变量NaN

    大多数语言都有一个 NaN 常量 您可以使用它为变量分配值 NaN python 可以在不使用 numpy 的情况下做到这一点吗 是的 使用math nan https docs python org 3 library math html
  • 获取长度为 n 的所有(n-选择-k)组合

    我怎样才能获得长度的所有组合 按顺序 n从数字列表中 例如 给定列表 1 2 3 4 并设置n 3 我怎样才能得到这些结果 1 2 3 1 2 4 1 3 4 2 3 4 For combinations of all possible l

随机推荐

  • 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