Python3.7中使用zip从列表创建字典的替代方法

Python3.7中使用zip从列表创建字典的替代方法,python,dictionary,tuples,Python,Dictionary,Tuples,我有一些清单,并试图把它们合并成一本字典。我认为使用zip()效果很好。但是,在使用我创建的字典进行更多工作时,我得出结论,从zip()返回的元组是一个真正的问题。本例中的问题意味着使用中的代码只会创建一个空列表。到目前为止,可以查看和测试完整的代码 我的列表如下所示: 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,

我有一些清单,并试图把它们合并成一本字典。我认为使用
zip()
效果很好。但是,在使用我创建的字典进行更多工作时,我得出结论,从
zip()
返回的元组是一个真正的问题。本例中的问题意味着使用中的代码只会创建一个空列表。到目前为止,可以查看和测试完整的代码

我的列表如下所示:

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\u node\u 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])]}
{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\u node\u dict\u 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])]}
{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的元组问题,或者是否有其他更适合我的问题的方法

因为我在过去几个小时里一直在寻找解决方案,我真的希望有人能想出一个办法。

你是说

face_nodes_dict={z[0]:zip中z的列表(z[1:])(*face_和_nodes)}
打印(面\u节点\u目录)
印刷品:

{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]]}

是的,这正是我想要的……哇,现在我感觉有点沮丧。认为使用[z[1:]会产生与使用列表(z[1:])相同的结果。@Grinnorye No、
[value]
列表(value)
是不同的。这是常见的错误。第一个生成带有一个
值的列表,第二个迭代
创建列表。