Ruby和Javascript中的Python相当于什么?

时间:2012-11-07 14:23:52

标签: python list map

比如说我想要分割字符串"12:30-14:40",并将结果放在像[["12","30"],["14","40"]]这样的矩阵中。

我可以在JavaScript中执行以下操作:

"12:30-14:40".split("-").map(function(x) {
    return x.split(':');
});

并在Ruby中:

 "12:30-14:40".split("-").map{|x| x.split(":")}

上面的python等价物是什么?

3 个答案:

答案 0 :(得分:17)

在Python中使用map(),你会得到类似的东西:

In [1]: map(lambda x: x.split(":"), "12:30-14:40".split("-"))
Out[1]: [['12', '30'], ['14', '40']]

答案 1 :(得分:11)

您可以使用列表理解:

>>> [i.split(':') for i in "12:30-14:40".split('-')]
[['12', '30'], ['14', '40']]

答案 2 :(得分:1)

来自Ruby and Python by example

  

Ruby

a = [1,2,3]
a.map { |x| x**2 } # [1,4,9]
# map returns a new array
# use map! to mutate the original

a.collect { |x| x**2 } # [1,4,9]
# collect is an alias of map
     

Python

a = [1,2,3]
[x**2 for x in a] # [1,4,9]
map(lambda x: x**2, a) # [1,4,9]

如果您希望python返回列表,就像ruby一样,请改为:list(map(lambda x: x**2, a))