【发布时间】:2019-01-04 18:14:31
【问题描述】:
我对 Python 没有太多经验。我正在尝试以我习惯于使用 Java 和 JavaScript 的函数式风格编写代码,例如
var result = getHeroes('Jedi')
.map(hero => { hero: hero, movies: getMovies(hero) })
.filter(x => x.movies.contains('A New Hope'));
我正在尝试在 Python 中做类似的事情,但我无法获得相同的链接样式。我不得不把它分解成两个我不喜欢的陈述:
tmp = ((hero, get_movies(hero)) for hero in get_heroes('jedi'))
result = ((hero, movies) for (hero, movies) in tmp if movies.contains('A New Hope')
我有两个问题:
- 在 Python 中有没有办法接近第一种样式?
- 在 Python 中执行此操作的惯用方式是什么?
谢谢。
【问题讨论】:
-
那个 javascript 实际上看起来不是很实用。
-
好吧,你可以做功能性的,但你的合作者很可能会因此而讨厌你(:如果你也和一个功能性的人一起工作,那么一定要去做(:
-
@JoeyMallone 也不是 JavaScript/Java,但 OP 想这样写
标签: python functional-programming