使用if-else指定索引

时间:2016-04-07 17:51:29

标签: 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])

我的问题是self.modality的不同值,我想要my_array的特定不同索引。当self.modality== "all"时,我想要特定的值范围。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您的代码几乎就在那里,您可以通过以下索引引用列表my_array[idx]

因此...

def modality_check(self):
    if self.modality == "A":
        return my_array[0]
    elif self.modality == "B":
        return my_array[1]
    ...
    ...
    ...
    elif self.modality = "All":
        return my_array[2:5]

答案 1 :(得分:0)

在Python中,从一组值映射到另一组值的常用方法是使用dict。另请注意,dict值可以是任何Python实体,例如表示(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] )