9

例如说我想分割字符串"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等价物是什么?

4

3 回答 3

18

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

In [1]: map(lambda x: x.split(":"), "12:30-14:40".split("-"))
Out[1]: [['12', '30'], ['14', '40']]
于 2012-11-07T14:28:42.230 回答
13

您可以使用列表推导:

>>> [i.split(':') for i in "12:30-14:40".split('-')]
[['12', '30'], ['14', '40']]
于 2012-11-07T14:27:50.187 回答
2

以Ruby和 Python 为例

红宝石

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))

于 2018-10-10T20:08:41.693 回答