使用 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]
我正在使用 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]