多个if和else语句

Denver Dang

我正在尝试在python中使用matplotlib进行一些绘图。

然后,我经历了一个循环:

structure = ['CTV', 'ITV', 'PTV', 'Index']

现在,循环(for voi in structure)中发生了一些事情,例如从.txt文件中获取数据,子图并设置绘图格式,然后进行轴格式化。对于每种结构,都会有一些不同的轴尺寸,而matplotlib不会自动实现这些尺寸。所以我想做的是以下几点:

plt.axis([0, 180, 75 if voi=='PTV' else 92 if voi=='CTV' else 15 if voi=='ITV' else 0 if voi=='Index', 82 if voi=='PTV' else 97 if voi=='CTV' else 60 if voi=='ITV' else 40 if voi=='Index'])

我知道这看起来很糟糕,而且也不起作用。但是我想你明白了。对于每种结构,需要不同的轴尺寸。如果我只使用:

75 if voi=='PTV' else 92

作为一个例子,它的工作原理。但是,使用多个else语句,那么就不会。那么,我将如何以最简单的方式进行呢?我写的那本书可能看起来很糟,但是写起来很容易。但是如上所述,它不是那样工作的。

提前致谢。

帕德拉克·坎宁安(Padraic Cunningham)

使用字典:

poss_voi = {'Index':40,'PTV':75,'ITV':15, 'CTV': 92 etc....}

然后只需进行查找:

plt.axis([0, 180, poss_voi[voi]])

如果要使用默认值,请使用dict.get

 plt.axis([0, 180, poss_voi.get(voi, some_default_value)])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章