多个if和else语句

时间:2016-07-08 23:26:46

标签: python matplotlib

我试图在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语句,那么它就不会。那么我怎么能以最简单的方式解决这个问题呢?我写的那个可能看起来很糟糕,但写起来很容易。但如上所述,它并不像那样。

提前致谢。

1 个答案:

答案 0 :(得分:4)

使用字典:

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)])