在Python中使用Lambda函数生成从-1.0到1.0的数字波长

在Python中使用Lambda函数生成从-1.0到1.0的数字波长,python,lambda,waveform,Python,Lambda,Waveform,我使用一个类来存储一个浮点列表,然后使用这些浮点创建一个由散列(#)构成的波形 我需要添加一个使用lambda的函数,该函数可以用于将每个值替换为基于原始值的另一个值。例如,使abs(x)

我使用一个类来存储一个浮点列表,然后使用这些浮点创建一个由散列(#)构成的波形

我需要添加一个使用lambda的函数,该函数可以用于将每个值替换为基于原始值的另一个值。例如,使abs(x)<0.5的所有值变为-1.0或1.0,这取决于它们最初是负值还是正值

我一直在研究如何在python控制台中绘制波形。数字的波形应如下所示:

def transform(self):
    temp = []
    for x in self.mylist:
        if abs(x) < 0.5:
            temp.append(-1.0)
        else:
            temp.append(+1.0)
     return temp
lambda x: -1.0 if abs(x) < 0.5 == 0 else +1.0
数字哈希波形


谢谢。

为了方便和简洁,python中的Lambda函数被用来代替实际命名的函数,因此我不知道在这里生成包含Lambda函数的函数是否正确。您可以添加一个作用于列表的方法,如下所示:

def transform(self):
    temp = []
    for x in self.mylist:
        if abs(x) < 0.5:
            temp.append(-1.0)
        else:
            temp.append(+1.0)
     return temp
lambda x: -1.0 if abs(x) < 0.5 == 0 else +1.0
def变换(自):
温度=[]
对于self.mylist中的x:
如果abs(x)<0.5:
临时附加(-1.0)
其他:
附加温度(+1.0)
返回温度
或者,您可以使用类似以下的lambda“内联”完成此操作:

def transform(self):
    temp = []
    for x in self.mylist:
        if abs(x) < 0.5:
            temp.append(-1.0)
        else:
            temp.append(+1.0)
     return temp
lambda x: -1.0 if abs(x) < 0.5 == 0 else +1.0
lambda x:-1.0如果abs(x)<0.5==0,否则+1.0
或者更好的是,您可以使用列表理解:

newList = [-1.0 if abs(x) < 0.5 else 1.0 for x in oldList]
newList=[-1.0如果abs(x)<0.5,则为-1.0,否则为oldList中x的1.0]