哪种优雅的方法可以将[x for y]的结果从列表转换为常规变量



哪种优雅的方法可以将[x for x in y]的结果从列表转换为常规变量?

result= [x for x in range(10) if x==7]

上述结果将是[7]。我现在正在使用result=result[0],但是...看起来不正确: - )

谢谢

您在右侧有一个列表理解。它评估到列表。

您想从中获取第一个元素(这也许是您要解决的问题的唯一元素),因此将列表理解返回的列表中的第0元素索引,就像您会为常规列表做。

result = [x for x in range(10) if x == 7][0]

您也可以使用发电机表达式而不是列表表达式,然后调用Next()函数以从发电机表达式返回的迭代器中检索第一个项目。

result = next(x for x in range(10) if x == 7)

您可以使用从迭代器中检索下一个对象的nextnext内的参数为A Generator 。这使您免于完全构造列表,然后为7进行过滤。相反,它仅迭代直到击中7,并且不会评估直到在发电机对象上调用下一个next(..)

>>> next(x for x in range(10) if x==7)
7

相关内容

  • 没有找到相关文章

最新更新