【问题标题】:specifying indices using if-else [duplicate]使用 if-else 指定索引 [重复]
【发布时间】:2016-07-28 18:40:37
【问题描述】:

我的代码是这样的:

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" 时,我想要特定的值范围。

我怎样才能做到这一点?

【问题讨论】:

    标签: python arrays list slice


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您的代码就差不多了,您可以通过以下索引引用列表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]
      

      【讨论】:

        猜你喜欢
        • 2019-04-20
        • 2014-08-08
        • 2014-10-04
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 2016-08-20
        • 2021-03-31
        • 2013-07-28
        相关资源
        最近更新 更多