当前位置: 首页 > 面试题库 >

使用if和break创建Python列表理解

封飞
2023-03-14
问题内容

可以将这段代码转换为列表理解吗?

for i in userInput:
    if i in wordsTask:
        a = i
        break

我知道如何转换它的一部分:

[i for i in userInput if i in wordsTask]

但是我不知道如何添加中断,并且文档没有太大帮助。

任何帮助,将不胜感激。


问题答案:
a = next(i for i in userInput if i in wordsTask)

分解一下:

[i for i in userInput if i in wordsTask]

将产生一个清单。您想要的是列表中的第一项。一种方法是使用下一个功能:

next([i for i in userInput if i in wordsTask])

Next返回迭代器的下一项。在像列表这样的可迭代的情况下,它最终采用了第一项。

但是没有理由真正构建列表,因此我们可以改用生成器表达式:

a = next(i for i in userInput if i in wordsTask)

另外,请注意,如果生成器表达式为空,则会导致异常:StopIteration。您可能要处理这种情况。或者您可以添加默认

a = next((i for i in userInput if i in wordsTask), 42)


 类似资料:
  • 问题内容: 如何在Python中执行以下操作? 实质上: 用空字符串替换所有的None,然后 执行功能。 问题答案: 你可以完全做到这一点,这只是一个订购问题: 一般来说, 而且,if仅对于具有条件的列表理解而言, 请注意,这实际上使用了一种不同的语言构造,即条件表达式,它本身不是理解语法的一部分,而ifafter则for…in是列表理解的一部分,用于从可迭代的源中筛选元素。 条件表达式可用于各种

  • 问题内容: 我喜欢Python列表理解语法。 它也可以用来创建字典吗?例如,通过遍历键和值对: 问题答案: 使用字典理解: 注意:这适用于Python 3.x(及2.7及更高版本)。以前在Python 2.6和更早版本中,dict内置函数可以接收可迭代的键/值对,因此您可以将其传递给列表理解或生成器表达式。例如: 在简单的情况下,您根本不需要理解… 但是,如果您已经具有可迭代的键和/或值,只需di

  • 问题内容: 我需要将列表转换成字典,如下所示。奇数元素具有键,偶数元素具有值。 -> 获得相同结果的更好方法? 添加 似乎在工作 问题答案: dict(x[i:i+2] for i in range(0, len(x), 2))

  • 问题内容: 我喜欢Python列表理解语法。 可以用来创建字典吗?例如,通过遍历键和值对: 问题答案: 从Python 2.7和3开始,你应该只使用语法: 在Python 2.6和更早版本中,内置函数可以接收键/值对的迭代,因此你可以将其传递给列表推导或生成器表达式。例如: 但是,如果你已经具有可迭代的键key/value,则根本不需要使用任何理解-最简单的方法是直接调用内置函数:

  • 问题内容: 例如,我有以下列表: 并希望将其用“ |”分隔 所以结果看起来像: 我怎样才能做到这一点?我只在网上找到需要一定长度元素的子列表示例 问题答案:

  • 问题内容: 我们都知道python的 句法。 但是,列表理解的 AST表示可以容纳多个’if’表达式: 有人可以给我一个python代码示例,该示例会生成带有多个“ if”表达式的AST吗? 问题答案: 只需将它们一个接一个地堆叠: 产生介于11和49之间(含)的整数。