【发布时间】:2021-06-04 10:33:58
【问题描述】:
我有一些列表并尝试将它们组合到字典中。我认为使用zip() 效果很好。但是,当我更多地使用我创建的字典时,我得出结论,从zip() 返回的元组是一个真正的问题。这种情况下的问题意味着使用来自this answer on my previous question 的代码只会创建一个空列表。到目前为止的完整代码可以看到和测试here。
我的列表如下所示:
faceid = [1, 2, 3]
face_x = [15.4, 20.7, 19.3]
face_y = [9.2, 10.6, 0.0]
face_z = [0.1, 5.5, 20.4]
vertices = [[1, 2, 3], [2, 3, 4], [2, 7, 8]]
然后使用 zip 创建字典,例如:
face_and_nodes = [faceid, face_x, face_y, face_z, vertices]
face_nodes_dict = {z[0]: [z[1:]] for z in zip(*face_and_nodes)}
print("face_node_dict: ", face_nodes_dict, sep="\n")
这导致当前的输出:
face_node_dict:
{1: [(15.4, 9.2, 0.1, [1, 2, 3])], 2: [(20.7, 10.6, 5.5, [2, 3, 4])], 3: [(19.3, 0.0, 20.4, [2, 7, 8])]}
我需要的是这样的:
face_node_dict_correct:
{1: [15.4, 9.2, 0.1, [1, 2, 3]], 2: [20.7, 10.6, 5.5, [2, 3, 4]], 3: [19.3, 0.0, 20.4, [2, 7, 8]]}
我会手动编写字典,但它必须为几千个条目完成,所以这不是一个选择。
现在的问题是:如何创建我的字典而不会遇到来自 zip 的元组问题,或者是否有任何替代方案更适合我的问题?
由于过去几个小时我一直在寻找解决方案,我真的希望有人知道如何做到这一点。
【问题讨论】:
标签: python dictionary tuples