python - 在列表解析中实现三元条件运算符

标签 python list list-comprehension conditional-operator

我正在尝试在列表理解中实现三元条件运算符。我是这样写的:

lst.append(dict2obj(item)) if type(item) is not in ['int'] else lst.append(item) for item in v

其中 lst 是空列表,v 是另一个包含各种元素的列表。编辑器显示它在语法上不正确。我做错了什么?

最佳答案

  • 如果你想写列表理解你错过了[, ]:
  • 没有 is not in 运算符。使用不在
  • type 函数不返回string。为什么不使用 isinstance(item, int)

[lst.append(dict2obj(item)) if not isinstance(item, int) else lst.append(item)
 for item in v]

如果可能,使用简单的for 循环。它更具可读性。

for item in v:
    if not isinstance(item, int)
        lst.append(dict2obj(item))
    else:
        lst.append(item)

关于python - 在列表解析中实现三元条件运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157103/

相关文章:

python - 使用最大条件比较和删除列表列表中的列表

python - 我们是否应该始终用列表理解替换 for 循环

python - 如何区分函数和类方法?

用于删除除 "good words"之外的所有行的 Python 脚本

python - 这些 Python 结构之间的区别

c# - 为什么我的列表中的成员会被所述列表的最后一个成员覆盖?

Python:如何为嵌套列表返回具有特定格式的字符串

Python元组字典加法

python - Pandas 替换值字典中的子字符串

python - 删除和/或更新系统的 Python 时虚拟环境的后果