使用for和if循环的内联表达式

时间:2016-07-13 08:38:45

标签: python python-3.x

以下是问题:

input = array([ 0. ,  0.5,  1. ,  1.5])   

必需输出:任何值> 1都应设置为1

array([ 0. ,  0.5,  1. ,  1])   

我目前的计划

import numpy as np

input = np.arange(0,2,0.5);#array([ 0. ,  0.5,  1. ,  1.5])  

for i in np.arange(0, np.size(input)):  
    if input[i] > 1:
        input[i] = 1

这个简单操作的缩写形式是什么:

dummy3 =[if i> 1: xxxxxx , for i in input] 
or 
output = [if (for i in input) > 1: return 1 ]

1 个答案:

答案 0 :(得分:0)

output = [1 if i > 1 else i for i in input]

它被称为list comprehension

这会创建一个新的列表(概念性地)填充:

output = []
for i in input:
    if i > 1:
        output.append(1)
    else:
        output.append(i)

如评论中所述,当您使用numpy并想要更改原始数组时,您可以执行以下操作:

input[input>1]=1