【发布时间】:2020-05-20 00:25:48
【问题描述】:
我正在尝试检查列表是否为空,使用带有 lambda 函数和 zip 的过滤器返回相关描述。
它的工作,但结果不符合预期。
list_of_lists = [ [ ] , [ 'not_empty' ] ]
list_of_desc = [ 'first_list_is_empty' , 'second_list_not_empty' ]
result = list(filter(lambda item : item[1] if not item[0] else '',zip(list_of_lists,list_of_desc )))
result
Out[180]: [([], 'first_list_is_empty')]
不明白为什么它返回元组,我在切片元组时期待“first_list_is_empty”。
【问题讨论】:
-
help(filter)-> “返回一个迭代器,产生那些函数(项目)为真的可迭代项目。”您的 lambda 为迭代器的第一个元素返回 True,以便从过滤器返回该元素。 -
感谢@mechanical_meat