列表中的Python高阶函数

时间:2016-02-20 16:16:55

标签: python higher-order-functions

我有以下列表:

bananas = ['7,2,1 : Banana', 'Z : Banana', 'L,D : Banana']

我想使用Python的高阶函数来推导出以下内容:

[['7', '2', '1'], ['Z'], ['L', 'D']]

我写了这个:

bananas_stripped = map(lambda x: [x.split(':')[0]], bananas)

......产生这个:

[['7,2,1 '], ['Z '], ['L,D ']]

我可以像这样申请另一个HOF:

test = map(lambda x: x[0].split(','), bananas_stripped)

但我无法弄清楚如何在一个函数中编写所有内容,即我想在bananas_stripped内完成所有操作。

3 个答案:

答案 0 :(得分:1)

让vaultah回答正确答案。

map(lambda x: x.split(':')[0].strip().split(','), bananas)

答案 1 :(得分:0)

dict()

这将给出输出

bananas_stripped = [['7,2,1 '], ['Z '], ['L,D ']]
new_bananas_stripped = []
for item in bananas_stripped:
    item_string = item[0].replace(" ", "")
    item_string = item_string.split(',')
    new_bananas_stripped.append(item_string)
print(new_bananas_stripped)

抱歉,我不太擅长将代码简化为一行。

答案 2 :(得分:-1)

我认为这会奏效:

bananas_stripped = map(lambda x: [x.strip().split(",") for x in [x.split(':')[0]]], bananas)