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

Using Lambda Function in Python to generate a wavelength of numbers from -1.0 to 1.0

我正在使用 class 存储浮点数列表,然后使用这些浮点数创建由哈希 (#) 构成的波形。

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

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

数字哈希波形

谢谢。

为了方便和简洁起见,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

或者您可以 'inline' 使用这样的 lambda:

lambda x: -1.0 if abs(x) < 0.5 == 0 else +1.0

或者更好的是你可以使用列表理解:

newList = [-1.0 if abs(x) < 0.5 else 1.0 for x in oldList]