【问题标题】:Is this ternary operator or list comprehension这是三元运算符还是列表推导
【发布时间】:2022-01-15 14:47:05
【问题描述】:
h=[1,2,3,4,5,6,7,8,9]
g=["even" if i%2==0 else "odd" for i in h]
print(g)

现在我正在学习列表理解和三元运算符。列表推导用于将项目附加到新列表。但这也将项目附加到新列表中。那么上面的程序是三元运算符还是列表推导?

【问题讨论】:

  • 简短回答:是的

标签: python-3.x list-comprehension operator-keyword ternary


【解决方案1】:

两者兼而有之。给定表达式["even" if i%2==0 else "odd" for i in h],我们有一个三元表达式:

"even" if i % 2 == 0 else "odd"

嵌入在更大的列表理解表达式中:

[ANY_EXPRESSION_AT_ALL for i in h]

表达式可以组合在一起。最简单的例子是1 + 1是一个表达式,它可以与表达式* 2组合生成表达式1 + 1 * 2

请注意,我忽略了第二行的 g = 部分,因为赋值是 Python 中的 语句,而不是表达式并且不返回值。所以你不能像编写表达式一样编写赋值。

【讨论】:

  • 还要注意Python最近引入了赋值表达式:=,所以在赋值的情况下水还是更多浑浊的。
猜你喜欢
  • 2018-10-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
  • 2021-10-06
  • 2022-01-17
  • 2018-10-13
  • 2020-04-12
  • 1970-01-01
相关资源
最近更新 更多