gpt4 book ai didi

python - 字典没有给出所有元素 - Python

转载 作者:行者123 更新时间:2023-11-30 22:54:34 25 4
gpt4 key购买 nike

我想从列表中制作字典。

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 个元素?

根据zip documentation :

The returned list is truncated in length to the length of the shortest argument sequence.

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

<小时/>

为什么字典元素的顺序是随机的?

普通字典中元素的顺序无法保证。我认为它是特定于实现的,并且通常基于 key 散列的顺序。您应该使用 OrderedDict如果您想维持特定顺序:

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'))])

关于python - 字典没有给出所有元素 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37728733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com