Python中与<T>()(在.NET中)的LINQ等价的是什么

2024-09-29 03:34:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在logger.handlers集合中获取一个特定自定义类型MemoryListHandler的单个Handler。在

对于.NET,我只需使用以下LINQ扩展,它过滤元素并只返回MemoryListHandler类型的元素:

logger.handlers.OfType<MemoryListHandler>().SingleOrDefault()

在Python中什么是最优雅的等价物?在

我目前的尝试是:

^{pr2}$

Tags: 元素类型nethandlersloggerlinqhandlerpr2
2条回答

Python是动态类型的,因此您可能不需要转换任何内容。在

但是,在某些情况下,您可能仍然需要将int转换为string:

  map(lambda x: str(x), [1, 2, 3])

或者,如果函数只接受一个参数,只需单独传递函数:

^{pr2}$

更新

 filter(lambda x: type(x) == YourClass, [your_array])

您可以尝试index方法。在

try:
    lh = logger.handlers
    x = lh[lh.index(MemoryListHandler)]
except ValueError:
    x = some_default_value

相关问题 更多 >