使用字典将数组转换为列表

时间:2017-06-21 10:21:11

标签: python arrays list dictionary

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

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  

3 个答案:

答案 0 :(得分:2)

为什么你在这里使用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]

答案 1 :(得分:0)

不知道为什么numpy但这段代码会起作用:

localPath

答案 2 :(得分:0)

dict.get()如果密钥不存在,则不会引发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]]