在映射中使用条件和lambda

2024-05-17 12:14:47 发布

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

如果我想要一个数字列表,然后做这样的事情:

lst = [1,2,4,5]
[1,2,4,5] ==> ['lower','lower','higher','higher']

3使用map函数的条件中,有一种简单的方法吗?

显然map(lambda x: x<3, lst)让我非常接近,但是我如何在map中包含一个语句,它允许我立即返回一个字符串而不是布尔值?


Tags: 方法lambda函数字符串map列表数字语句
2条回答

三元运算符:

map(lambda x: 'lower' if x<3 else 'higher', lst)
>>> lst = [1,2,4,5]
>>> map(lambda x: 'lower' if x < 3 else 'higher', lst)
['lower', 'lower', 'higher', 'higher']

旁白:通常最好使用列表理解

>>> ['lower' if x < 3 else 'higher' for x in lst]
['lower', 'lower', 'higher', 'higher']

相关问题 更多 >