【发布时间】:2020-02-17 11:59:10
【问题描述】:
我有一个列表['apple', 'banana', 'cherry']
我想在它上面运行地图,它会选择一些项目
l = map(lambda x : x if x == "apple" else pass, ['apple', 'banana', 'cherry'])
它似乎应该可以工作,但是它给出了语法错误
这里有什么问题?
【问题讨论】:
-
您希望
pass分支上发生什么?请注意,map将 每个 输入元素转换为输出元素。它不能删除元素。 -
我通常的提醒:如果您需要
lambda来使用map或filter,请不要。与通过内联相同逻辑来避免lambda的等效列表理解/生成器表达式相比,它会更慢且可读性更低。 -
@ShadowRanger 你能举个例子吗?
-
@rahulKushwaha:举个例子?您的答案已经显示了选项(
map/filter、listcomp、genexpr)。
标签: python list dictionary lambda