Python 使用if-else指定索引

Python 使用if-else指定索引,python,arrays,list,slice,Python,Arrays,List,Slice,我有一个这样的代码: if self.modality == "A": idx = 0 elif self.modality == "B": idx = 1 elif self.modality == "C": idx = 2 elif self.modality == "D": idx = 3 elif self.modality == "all": idx = 0:5 my_value = get_value(my_array[idx])

我有一个这样的代码:

if self.modality == "A": 
    idx = 0
elif self.modality == "B": 
    idx = 1
elif self.modality == "C": 
    idx = 2
elif self.modality == "D": 
    idx = 3
elif self.modality == "all": 
    idx = 0:5

my_value = get_value(my_array[idx])
我的问题是对于self.model的不同值,我希望从我的_数组中获得特定的不同索引。当self.modality==all时,我希望指定值的具体范围


如何实现这一点?

您的代码就快到了,您可以通过索引引用列表,例如:my_array[idx]

所以


在Python中,从一组值映射到另一组值的常见方法是使用dict。还要注意,dict值可以是任何Python实体,例如表示低、高范围的元组,甚至是要实例化的类

因此,如果您想将一些文本字符串映射到某些范围,您可以编写如下代码

low,high = {
   "A":(0,1), "B":(1,2), "C":(2,3), "D":(3,4), "all":(0,5) 
    } [self.modality]

my_value = get_value( my_array[low:high] )
low,high = {
   "A":(0,1), "B":(1,2), "C":(2,3), "D":(3,4), "all":(0,5) 
    } [self.modality]

my_value = get_value( my_array[low:high] )