由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - python: 可以用map计算数列之间的差额吗?
相关主题
FP的死穴还是性能[合集] Linux/Unix下时间的精度 (转载)
怎么这里这么多人学python如果给随即函数rand[1,5] 如何产生rand[1,7] (转载)
scala基本是死了。clojure还有戏么魏老师的方案
请教一个python 问题好多人害怕锁
什么FP能替代python我说老 bug,给个数据库模型大家学习学习
tensorflow太扯了阿里一线工程师来告诉你:当你在双十一剁手时,他们在干嘛
一个python编程问题类似yelp这样的服务需要mongo做storage吗?
C# 菜鸟问题 -- ObjectDisposedException如果用scrum做sprint plan,怎么确定user story和task?
相关话题的讨论汇总
话题: slice1话题: slice2话题: map话题: xs话题: none
进入Programming版参与讨论
1 (共1页)
w*s
发帖数: 7227
1
比如一个数列【1,4,9,16,25】,
如何得到【3,5,7,9】?
谢谢!
H****S
发帖数: 1359
2
def f(xs): return map (lambda (x, y) : y - x, zip (xs, xs[1:]))
w*s
发帖数: 7227
3
尼玛,太牛了,老子完全看不懂

【在 H****S 的大作中提到】
: def f(xs): return map (lambda (x, y) : y - x, zip (xs, xs[1:]))
s******d
发帖数: 278
4
haskell haha

【在 H****S 的大作中提到】
: def f(xs): return map (lambda (x, y) : y - x, zip (xs, xs[1:]))
n****l
发帖数: 1739
5
really do not see the reason to use map at all.
[xs[i+1] - xs[i] for i in range(len(xs)-1)]

【在 w*s 的大作中提到】
: 尼玛,太牛了,老子完全看不懂
a****f
发帖数: 17
6
try numpy, numpy.diff([1,4,9,16,26])

【在 w*s 的大作中提到】
: 比如一个数列【1,4,9,16,25】,
: 如何得到【3,5,7,9】?
: 谢谢!

w*s
发帖数: 7227
7
zan !

【在 n****l 的大作中提到】
: really do not see the reason to use map at all.
: [xs[i+1] - xs[i] for i in range(len(xs)-1)]

H****S
发帖数: 1359
8
list和本身的tail进行zip代表了一种非常有用的pattern,看下面的,
def f: Stream[Int] = 1 #:: 1 #:: (f.zip(f.tail).map(x => x._1 + x._2))
基本上你不可能找到比这个更简单清晰的fibonacci数列求法了。

【在 n****l 的大作中提到】
: really do not see the reason to use map at all.
: [xs[i+1] - xs[i] for i in range(len(xs)-1)]

n******7
发帖数: 12463
9
你和他的答案是两种思路了
基于index的for循环任何一个学过C系语言的都熟悉,简单易懂
一招搞定所有问题,不变应万变
你这个应该是functional style的,我觉得很优美,“高”级
可以在比较粗的粒度上构思整个程序
但是需要时间来熟悉
你最后这个不是python吧?看着像scala
有没有什么资料详细讲解你说的这些pattern的?
我觉得很有意思,而且这种东西可以不限于特定的语言,值得花时间学习

【在 H****S 的大作中提到】
: list和本身的tail进行zip代表了一种非常有用的pattern,看下面的,
: def f: Stream[Int] = 1 #:: 1 #:: (f.zip(f.tail).map(x => x._1 + x._2))
: 基本上你不可能找到比这个更简单清晰的fibonacci数列求法了。

b*******s
发帖数: 5216
10
这才是正解

【在 a****f 的大作中提到】
: try numpy, numpy.diff([1,4,9,16,26])
相关主题
tensorflow太扯了[合集] Linux/Unix下时间的精度 (转载)
一个python编程问题如果给随即函数rand[1,5] 如何产生rand[1,7] (转载)
C# 菜鸟问题 -- ObjectDisposedException魏老师的方案
进入Programming版参与讨论
H****S
发帖数: 1359
11
functional programming in scala这本书上有大量这样的奇技淫巧。我另外一个比较
喜欢的是如何用foldr实现foldl。

【在 n******7 的大作中提到】
: 你和他的答案是两种思路了
: 基于index的for循环任何一个学过C系语言的都熟悉,简单易懂
: 一招搞定所有问题,不变应万变
: 你这个应该是functional style的,我觉得很优美,“高”级
: 可以在比较粗的粒度上构思整个程序
: 但是需要时间来熟悉
: 你最后这个不是python吧?看着像scala
: 有没有什么资料详细讲解你说的这些pattern的?
: 我觉得很有意思,而且这种东西可以不限于特定的语言,值得花时间学习

n******7
发帖数: 12463
12
谢谢
不过你把这叫做奇技淫巧,是不是你觉得大部分这类技巧都没有实用价值?

【在 H****S 的大作中提到】
: functional programming in scala这本书上有大量这样的奇技淫巧。我另外一个比较
: 喜欢的是如何用foldr实现foldl。

n******7
发帖数: 12463
13
2楼或者5楼的方案已经很简洁了
我觉得没有必要的话,还是透明的代码比较好,尽量不要产生dependence
有时候会有意想不到的问题,而且可能别人升级个版本你code就不work了
除非numpy的performance比你自己的实现好很多,或者主要的code都是基于numpy的

【在 b*******s 的大作中提到】
: 这才是正解
n*****t
发帖数: 22014
14
妈蛋,老邢这个 13 点不让我贴代码,服了

【在 w*s 的大作中提到】
: 比如一个数列【1,4,9,16,25】,
: 如何得到【3,5,7,9】?
: 谢谢!

l*********s
发帖数: 5409
15
这个是基本技能,不会这个连玩具都写不了。

【在 n******7 的大作中提到】
: 谢谢
: 不过你把这叫做奇技淫巧,是不是你觉得大部分这类技巧都没有实用价值?

H****S
发帖数: 1359
16
我觉得很有用,FP把大量看上去不同的问题用相同的规律紧紧粘合在一起,特别适用于
我这种脑容量有限的人。但是这儿大多数人都觉得FP没用,我又不想把这个帖子变成圣
战贴,所以自降身段得了。

【在 n******7 的大作中提到】
: 谢谢
: 不过你把这叫做奇技淫巧,是不是你觉得大部分这类技巧都没有实用价值?

P**H
发帖数: 1897
17
通常情况,numpy就是比自己的实现好。已经是Python做科学计算的标杆。

【在 n******7 的大作中提到】
: 2楼或者5楼的方案已经很简洁了
: 我觉得没有必要的话,还是透明的代码比较好,尽量不要产生dependence
: 有时候会有意想不到的问题,而且可能别人升级个版本你code就不work了
: 除非numpy的performance比你自己的实现好很多,或者主要的code都是基于numpy的

s***o
发帖数: 2191
18
有点意思,我来个java版的
List result = IntStream.range(0, l.size() - 1)
.map(i -> l.get(i + 1) - l.get(i))
.boxed()
.collect(Collectors.toList());
s***o
发帖数: 2191
19
c# 版:
var result = l.Zip(l.Skip(1), (x, y) => y - x);
H****S
发帖数: 1359
20
xs.sliding(2).map({case x :: y :: _ => y - x}).toList

【在 s***o 的大作中提到】
: c# 版:
: var result = l.Zip(l.Skip(1), (x, y) => y - x);

相关主题
好多人害怕锁类似yelp这样的服务需要mongo做storage吗?
我说老 bug,给个数据库模型大家学习学习如果用scrum做sprint plan,怎么确定user story和task?
阿里一线工程师来告诉你:当你在双十一剁手时,他们在干嘛大家有讨论 王垠新博文《未来计划》吗?
进入Programming版参与讨论
n******7
发帖数: 12463
21
明白了 谢谢笑面男

【在 H****S 的大作中提到】
: 我觉得很有用,FP把大量看上去不同的问题用相同的规律紧紧粘合在一起,特别适用于
: 我这种脑容量有限的人。但是这儿大多数人都觉得FP没用,我又不想把这个帖子变成圣
: 战贴,所以自降身段得了。

n******7
发帖数: 12463
22
python科学计算当然用numpy这一套
我比较土,要是就算个差额
我还是愿意自己写,这种东西一般也不会是瓶颈
我看了一下diff的实现,
a = asanyarray(a)
nd = len(a.shape)
slice1 = [slice(None)]*nd
slice2 = [slice(None)]*nd
slice1[axis] = slice(1, None)
slice2[axis] = slice(None, -1)
slice1 = tuple(slice1)
slice2 = tuple(slice2)
if n > 1:
return diff(a[slice1]-a[slice2], n-1, axis=axis)
else:
return a[slice1]-a[slice2]
跟zip的思路比较像

【在 P**H 的大作中提到】
: 通常情况,numpy就是比自己的实现好。已经是Python做科学计算的标杆。
h*i
发帖数: 3446
23
Clojure:
(map - (next x) x)
这几乎就是本题字面意思的翻译。即使不懂Clojure的人也不能号称看不懂吧?这种题
,用FP要容易得多。

【在 w*s 的大作中提到】
: 比如一个数列【1,4,9,16,25】,
: 如何得到【3,5,7,9】?
: 谢谢!

h*i
发帖数: 3446
24
What a monstrosity. LOL.

【在 n******7 的大作中提到】
: python科学计算当然用numpy这一套
: 我比较土,要是就算个差额
: 我还是愿意自己写,这种东西一般也不会是瓶颈
: 我看了一下diff的实现,
: a = asanyarray(a)
: nd = len(a.shape)
: slice1 = [slice(None)]*nd
: slice2 = [slice(None)]*nd
: slice1[axis] = slice(1, None)
: slice2[axis] = slice(None, -1)

1 (共1页)
进入Programming版参与讨论
相关主题
如果用scrum做sprint plan,怎么确定user story和task?什么FP能替代python
大家有讨论 王垠新博文《未来计划》吗?tensorflow太扯了
mxnet/tf的一个比较blog一个python编程问题
R语言,小笔记本,如何调参?C# 菜鸟问题 -- ObjectDisposedException
FP的死穴还是性能[合集] Linux/Unix下时间的精度 (转载)
怎么这里这么多人学python如果给随即函数rand[1,5] 如何产生rand[1,7] (转载)
scala基本是死了。clojure还有戏么魏老师的方案
请教一个python 问题好多人害怕锁
相关话题的讨论汇总
话题: slice1话题: slice2话题: map话题: xs话题: none