python – 将数组值的增量减少到1
发布时间:2020-12-20 12:41:34  所属栏目:Python  来源:网络整理 
            导读:我正在尝试创建一个列表(比如说B),只有当另一个列表(例如A)的值存在差异时,该列表才会递增,例如: [1,1,2,4,4]至[0,2]或 [1,1]等 以下代码执行此操作: boxes=[1,4]positions=[0]position=0for psn,box in list(enumerate(boxes))[:-1]: if boxes[psn+1]-box
                
                
                
            | 
                         
 我正在尝试创建一个列表(比如说B),只有当另一个列表(例如A)的值存在差异时,该列表才会递增,例如: 
  
  
[1,1,2,4,4]至[0,2]或 [1,1]等 以下代码执行此操作: boxes=[1,4]
positions=[0]
position=0
for psn,box in list(enumerate(boxes))[:-1]:
    if boxes[psn+1]-box ==0:
        increment=0
    else:
        increment=1
    position=position+increment
    positions.append(position)
print(positions) 
 任何人都可以使用列表推导(最好使用lambda函数)来提供建议吗? 解决方法
 这是使用nummpy的方法: 
  
  
  
        a = [1,4] [0] + np.cumsum(np.clip(np.diff(a),1)).tolist() [0,2] 或者对于另一个例子: a = [1,1] ?细节 a = [1,4] 用 np.diff(a) array([0,0]) 并使用 np.clip(np.diff(a),1) array([0,0]) 最后取 [0] + np.cumsum(np.clip(np.diff(a),2] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
