Python 根据另一个变量的值范围定义新变量
这是一个python函数,它根据另一个变量(Python 根据另一个变量的值范围定义新变量,python,if-statement,variables,range,Python,If Statement,Variables,Range,这是一个python函数,它根据另一个变量(num\u heavy\u atoms)的值设置变量cor的值:如果num\u heavy\u atoms在范围[1:10],cor=1.0,如果num\u heavy\u atoms在范围[11:20],cor=2.0,等等 def determine_cor(num_heavy_atoms): if num_heavy_atoms >= 1 and num_heavy_atoms <= 10: cor = 1.0
num\u heavy\u atoms
)的值设置变量cor
的值:如果num\u heavy\u atoms
在范围[1:10]
,cor=1.0
,如果num\u heavy\u atoms
在范围[11:20]
,cor=2.0
,等等
def determine_cor(num_heavy_atoms):
if num_heavy_atoms >= 1 and num_heavy_atoms <= 10:
cor = 1.0
elif num_heavy_atoms >= 11 and num_heavy_atoms <= 20:
cor = 2.0
elif num_heavy_atoms >= 21 and num_heavy_atoms <= 30:
cor = 3.0
elif num_heavy_atoms >= 31 and num_heavy_atoms <= 40:
cor = 4.0
elif num_heavy_atoms >= 41 and num_heavy_atoms <= 50:
cor = 5.0
elif num_heavy_atoms > 50:
cor = 6.0
return cor
def define_cor(重原子数):
如果num_heavy_atoms>=1,num_heavy_atoms=11,num_heavy_atoms=21,num_heavy_atoms=31,num_heavy_atoms=41,num_heavy_atoms=50:
cor=6.0
返回cor
是否可以以更简洁的方式重写此函数以避免所有这些
elif
,并在开始时定义变量(num\u heavy\u atoms
)的所有可能范围?您可以使用字典从num\u heavy\u atoms
计算密钥:
cor_值={i:i+1表示范围(5)}
cor=cor_values.get((num_heavy_atoms-1)//10,6)
这假设num\u heavy\u atoms>=1
,这对于您的应用程序来说似乎是合理的
或者,您可以通过以下方式直接从num\u heavy\u atoms
计算cor
:
cor=(数重原子-1)//10+1
cor=最小值(cor,6)
您可以使用以下功能
def determine_cor(num_heavy_atoms):
heavy_atoms = [10,20,30,40,50]
for i , val in enumerate(heavy_atoms, start=1):
if num_heavy_atoms <= val :
return i
return 6
def define_cor(重原子数):
重_原子=[10,20,30,40,50]
对于i,枚举中的val(重_原子,起始值=1):
如果有多少个重原子