首先,我很抱歉我可能会问这个问题,如果它已经在别的地方被回答了,我找不到任何解决以下问题的方法:
我想创建一个列表,在其中应用多个约束,但我不想使用数百个if语句,我只想在一个if语句中使用字典来应用需求,也就是说,我想使用字典的键作为需求,使用字典的值作为数据的因子。
让我们看一个小例子:
我想创建一个计数图的数据,其中x/y的范围从[-50,50]开始,步长为1,并且z函数的要求基于if语句:
下面的代码是有效的,但是我添加的需求越多,代码就越长,越难读:
x = np.linspace(-50 , 50, 100)
y = np.linspace(-50 , 50, 100)
z = []
z_0 = 100
for i in x:
for j in y:
if i**2 + j**2 <= 10**2:
z.append(1.9 * z_0)
elif i**2 + j**2 <= 20**2:
z.append(1.5 * z_0)
elif i**2 + j**2 <= 30**2:
z.append(1.4 * z_0)
elif i**2 + j**2 <= 40**2:
z.append(1.05 * z_0)
else
z.append(z_0)
这将创建一个在不同位置上高度随z值径向递减的Map。有没有可能用下面的方法来实现这一点呢?我的主要问题是如何分配正确的值。
x = np.linspace(-50 , 50, 100)
y = np.linspace(-50 , 50, 100)
z = []
requirements_dict = {10:1,9, 20:1.5, 30:1.4, 40:1.05}
z_0 = 100
for i in x:
for j in y:
if i**2 + j**2 <= (each key of the requirements_dict) :
z.append( (corresponding value of the requirements dict) * z_0)
else
z.append(z_0)
提前感谢您的帮助,如果这个问题已经问过了,再次表示抱歉。
1条答案
按热度按时间hfsqlsce1#
这就是你要找的吗?
编辑: