首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在转换包含元组的字典时输入错误

在转换包含元组的字典时输入错误
EN

Stack Overflow用户
提问于 2022-05-12 10:37:31
回答 1查看 28关注 0票数 0
代码语言:javascript
复制
operations_dict = {
    "identity": np.array([[1, 0], [0, 1]]),
    "sigma_1": np.array([[1, -1], [0, -1]]),
    "sigma_2": np.array([[-1, 0], [-1, 1]]),
    "sigma_3": np.array([[0, 1], [1, 0]]),
    "C3": np.array([[-1, 1], [-1, 0]]),
    "C3-2": np.array([[0, -1], [1, -1]])}

tuple_dict = {k: tuple(v) for k, v in operations_dict.items()}
inv_tuple_dict = {v: k for k, v in tuple_dict.items()}

我正在编写一个包含数组的字典。因为数组是不可理解的,所以我将它们转换为元组。然而,当我试图倒置这个字典,以便我可以使用这些值作为键来获得键时,我会得到一个错误。类型错误:无法使用的类型:'numpy.ndarray‘。我检查了tuple_dict中条目的类型,它们都是元组和字符串。有谁能找到解决办法吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-05-12 11:39:29

您可以散列您的ndarray,并使用结果作为键在倒排。

代码语言:javascript
复制
    tuple_dict = {k: hash(v.tobytes()) for k, v in operations_dict.items()}

您需要保存散列结果才能访问倒排的数据。

代码语言:javascript
复制
operations_dict = {
        "identity": np.array([[1, 0], [0, 1]]),
        "sigma_1": np.array([[1, -1], [0, -1]]),
        "sigma_2": np.array([[-1, 0], [-1, 1]]),
        "sigma_3": np.array([[0, 1], [1, 0]]),
        "C3": np.array([[-1, 1], [-1, 0]]),
        "C3-2": np.array([[0, -1], [1, -1]])}

tuple_dict = {k: hash(v.tobytes()) for k, v in operations_dict.items()}
hashes = list(tuple_dict.values())
inv_tuple_dict = {v: k for k, v in tuple_dict.items()}
print(inv_tuple_dict[hashes[0]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72214091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档