字典没有提供所有元素-Python

字典没有提供所有元素-Python,python,numpy,dictionary,Python,Numpy,Dictionary,我想根据清单编一本字典 import numpy as np a1 = [1,2,3,4,5,6,7,8,9] b1 = ['a','b','c','d','e','f','g','h','i'] c1 = ['A','B','C','D','E','F','G','H','I'] array2 = np.array([a1,b1,c1]).tolist() keys = ['name', 'type','description','logo'] print dict(zip(keys,

我想根据清单编一本字典

import numpy as np

a1 = [1,2,3,4,5,6,7,8,9]
b1 = ['a','b','c','d','e','f','g','h','i']
c1 = ['A','B','C','D','E','F','G','H','I']

array2 = np.array([a1,b1,c1]).tolist()

keys = ['name', 'type','description','logo']

print dict(zip(keys, zip(*array2)))
输出:

{'logo': ('4', 'd', 'D'), 'type': ('2', 'b', 'B'), 'name': ('1', 'a', 'A'), 'description': ('3', 'c', 'C')}
  • 为什么我只得到4个元素

  • 为什么字典元素按4,2,1,3的随机顺序排列,为什么
    不是1,2,3,4

为什么我只能得到4个元素? 根据报告:

返回的列表的长度被截断为最短参数序列的长度

由于
keys
仅包含4个元素,因此由
zip(keys,zip(*array2))
生成的压缩列表也将包含4个值,从而导致
dict
仅包含4个值


为什么字典元素的顺序是随机的? 普通字典中元素的顺序不能保证。我认为它是特定于实现的,并且通常基于键散列的顺序。如果要维护特定订单,应使用:

import numpy as np
from collections import OrderedDict

a1 = [1,2,3,4,5,6,7,8,9]
b1 = ['a','b','c','d','e','f','g','h','i']
c1 = ['A','B','C','D','E','F','G','H','I']

array2 = np.array([a1,b1,c1]).tolist()

keys = ['name', 'type','description','logo']

print OrderedDict(zip(keys, zip(*array2)))
# prints: OrderedDict([('name', ('1', 'a', 'A')), ('type', ('2', 'b', 'B')), ('description', ('3', 'c', 'C')), ('logo', ('4', 'd', 'D'))])

您可以添加您想要的输出外观吗?现在我不清楚。你得到了4个项目,因为
包含4个元素
dict
不保证订单,用户
OrderDict
因此是的,谢谢,收到了