首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表上的Python高阶函数

列表上的Python高阶函数
EN

Stack Overflow用户
提问于 2016-02-20 16:16:54
回答 2查看 79关注 0票数 1

我有以下清单:

代码语言:javascript
复制
bananas = ['7,2,1 : Banana', 'Z : Banana', 'L,D : Banana']

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

代码语言:javascript
复制
[['7', '2', '1'], ['Z'], ['L', 'D']]

我写了这封信:

代码语言:javascript
复制
bananas_stripped = map(lambda x: [x.split(':')[0]], bananas)

...which会产生这样的结果:

代码语言:javascript
复制
[['7,2,1 '], ['Z '], ['L,D ']]

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

代码语言:javascript
复制
test = map(lambda x: x[0].split(','), bananas_stripped)

但我不知道如何在一个函数中编写所有这些,也就是说,我想在bananas_stripped中完成所有这些工作。

EN

回答 2

Stack Overflow用户

发布于 2016-02-20 16:32:49

代码语言:javascript
复制
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)

这将给出输出

代码语言:javascript
复制
[['7', '2', '1'], ['Z'], ['L', 'D']]

对不起,我不太擅长把代码简化成一行。

票数 0
EN

Stack Overflow用户

发布于 2016-02-20 16:22:56

我认为这是可行的:

代码语言:javascript
复制
bananas_stripped = map(lambda x: [x.strip().split(",") for x in [x.split(':')[0]]], bananas)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35525736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档