我已经搜索了一段时间了,基本上我正在尝试按元素有条件地按另一个列表增加一个元素列表......
我的代码如下,但是有更好的方法吗?列表理解,地图??
我认为像 ~+= 这样的逐元素运算符来自http://www.python.org/dev/peps/pep-0225/ http://www.python.org/dev/peps/pep-0225/确实很好,但为什么要推迟呢?
for i in range(1,len(s)):
if s[i]<s[0]:
s[i]+=p[i]
根据你们的一些良好反馈,我已重新编码为以下内容
i=s<s[0]
s[i]+=p[i]
和 s,p 都是数组。
p.s 对于我的代码之一来说仍然比 matlab 慢 5 倍。
这是一个快速版本:
# sample data
s = [10, 5, 20]
p = [2,2,2]
# As a one-liner. (You could factor out the lambda)
s = map(lambda (si, pi): si + pi if si < s[0] else si, zip(s,p))
# s is now [10, 7, 20]
这假设len(s) <= len(p)
希望这可以帮助。让我知道. 祝你好运。 :-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)