【问题标题】:Convert array to list by using dictionary使用字典将数组转换为列表
【发布时间】:2017-06-21 10:21:10
【问题描述】:

如果你有一个数组,并且你想使用你定义的字典来转换它,你会怎么做? 输入:

my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
x=np.array(2,6,8,1,.....)

输出:

y=("F","J","A","J",.....)

我们已经尝试过了:

my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
a = np.empty(len(x))
for i in range(0,len(x)):
    b=my_dict[x[i,0]]
    a[i,0]=b  

【问题讨论】:

    标签: python arrays list dictionary


    【解决方案1】:

    你为什么在这里使用 numpy 超出了我的理解,请注意你的 numpy 排列初始化语法不正确。但是你说的输出看起来像

     ("F","J","A","J",.....)
    

    为此,您需要以下内容:

    import numpy as np
    my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
    x=np.array([2,6,8,1,10,11])
    
    [my_dict[i] for i in x]
    

    【讨论】:

      【解决方案2】:

      不知道为什么 numpy 但这段代码可以工作:

      my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
      x=[2,6,8,1,10,11]
      
      result=[]
      for key in  x:
          result.append(my_dict[key]);
      
      print(result)
      

      【讨论】:

        【解决方案3】:

        dict.get() 不会在 key 不存在时抛出 KeyNotFoundError 异常。

        my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
        
        # With KeyNotFoundError handled
        x=[my_dict.get(i) for i in [2,6,8,1,10,11]]
        

        【讨论】:

          猜你喜欢
          • 2020-03-11
          • 2013-04-01
          • 1970-01-01
          • 2019-01-25
          • 2020-08-22
          • 1970-01-01
          • 2021-03-31
          • 2010-09-20
          • 2017-06-07
          相关资源
          最近更新 更多