0

遵循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)

这段代码工作正常,但我认为这不是一个好方法。附加方法也太慢了。

谢谢!

4

3 回答 3

3

您可以使用列表理解:

R = [int(val>=t) for val in I]
于 2013-10-10T12:26:15.620 回答
1

列表理解似乎是您需要的:

>>> 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]
于 2013-10-10T12:26:17.277 回答
0

根据您的需要,这可能是另一种选择:

import numpy as np
I = np.arange(0,500)
t = 253
R = 1*(I >= t)

如果 R 需要成为一个列表,您可以添加:R.tolist()

于 2013-10-10T12:38:34.713 回答