[英]Alternative to append
以下python代码的好方法是什么:
I = range(0,5000) ## some list
t = somevalue ## for ex. 5
R = []
append1 = R.append
for i in I:
if i >= t:
append1(1)
else:
append1(0)
这段代码可以正常工作,但是我认为这不是一个好方法。 而且append方法太慢了。
谢谢!
您可以使用列表理解:
R = [int(val>=t) for val in I]
列表理解似乎是您所需要的:
>>> I = range(0,10)
>>> t = 3
>>> R = [1 if i>=t else 0 for i in I]
>>> R
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1]
根据您的需要,可以选择以下替代方法:
import numpy as np
I = np.arange(0,500)
t = 253
R = 1*(I >= t)
如果R需要成为列表,则可以添加: R.tolist()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.