繁体   English   中英

在Python中执行映射中的代码块

[英]Execute a code block in a map in Python

我想在Python中复制以下JavaScript代码:

let a = [0, 4, 5]
b = a.map(x => {
  if(x < 3) return 0
  else return 1
})

知道我怎么能这样做吗? 我不确定如何在map函数中执行代码块。

你可以创建一个函数,或者像这样使用lambda函数:

>>> a = [0, 4, 5]
>>> b = map(lambda x: 0 if x < 3 else 1, a)
>>> b
[0, 1, 1]

Python中唯一的匿名函数是lambdas,它们仅限于表达式,如果你想要一个正确的函数,你必须给它一个名字:

def map_f(x):
    if x < 3:
        return 0
    else:
        return 1

b = map(map_f, a)

就个人而言,我更喜欢列表理解到map功能。

>>> a = [0, 4, 5]
>>> [int(x >= 3) for x in a]
[0, 1, 1]

它们允许您使用您想要的任何表达式而无需创建函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM