【发布时间】:2018-03-28 17:26:53
【问题描述】:
如何使用字典替换列表内部列表中的项目?
这很好用
import numpy as np
ss_dict = {
1 : np.array([1,0,0,0,0,0]),
2 : np.array([0,1,0,0,0,0]),
3 : np.array([0,0,1,0,0,0]),
4 : np.array([0,0,0,1,0,0]),
5 : np.array([0,0,0,0,1,0]),
6 : np.array([0,0,0,0,0,1]),
}
l=np.array([1,2,3])
l = np.array([ss_dict[i] for i in l])
print(l)
输出:
[[1 0 0 0 0 0]
[0 1 0 0 0 0]
[0 0 1 0 0 0]]
但这有错误TypeError: unhashable type: 'numpy.ndarray'
l=np.array([[1,2,3],[4,5,6]])
l = np.array([ss_dict[i] for i in (j for j in l)])
print(l)
我要输出:
[
[[1 0 0 0 0 0]
[0 1 0 0 0 0]
[0 0 1 0 0 0]]
[[0 0 0 1 0 0]
[0 0 0 0 1 0]
[0 0 0 0 0 1]]
]
【问题讨论】:
-
for i in (j for j in l)只是for i in l。您是否要扁平化l,即相当于for i in [1,2,3,4,5,6]? -
我已经更新了问题,现在可以了吗?如果可能的话,您能否删除反对票?谢谢! @AlexHall
-
@lanselibai,当然 - 查看更新的答案。
标签: python python-3.x list numpy dictionary