gpt4 book ai didi

python - 从列表中取出一个字典

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:17 24 4
gpt4 key购买 nike

我从我的数据库中取出一些列表:

print(liste)
[('VEST', 'MODEL-1', 'BEIGE', 'M'),
('VEST', 'MODEL-1', 'BEIGE', 'S'),
('JACKET', 'MOD-1', 'GREEN', 'S'),
('JACKET', 'MOD-1', 'GREEN', 'M'),
('JACKET', 'MOD-2', 'BLACK', 'L'),
('JACKET', 'MOD-2', 'BLACK', 'XL')]

现在我需要像这样创建一个字典:

mydict = {'VEST' : {'MODEL-1' : {'BEIGE' : ('S', 'M')}},
'JACKET' : ({'MOD-1' : {'GREEN' : ('S', 'M')}},
{'MOD-2' : {'BLACK' : ('L', 'XL')}})}

我会像 json 一样在 tkinter 中使用它。我需要选择这样的东西:

print(mydict['JACKET'][1]['MOD-2']['BLACK'][0])
L
# Or
print(mydict['VEST']['MODEL-1']['BEIGE'][0])
S

如何创建字典?我厌倦了尝试不同的方式。如果能得到好的建议我会很开心

最佳答案

您显示的内容不是很一致,但我认为您可能会受益于使用 collections.defaultdict :

In [1]: from collections import defaultdict

In [2]: liste = [('VEST', 'MODEL-1', 'BEIGE', 'M'),
...: ('VEST', 'MODEL-1', 'BEIGE', 'S'),
...: ('JACKET', 'MOD-1', 'GREEN', 'S'),
...: ('JACKET', 'MOD-1', 'GREEN', 'M'),
...: ('JACKET', 'MOD-2', 'BLACK', 'L'),
...: ('JACKET', 'MOD-2', 'BLACK', 'XL')]

In [3]: mydict = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))

In [4]: for kind, model, color, size in liste:
...: mydict[kind][model][color].append(size)
...:

In [5]: mydict['VEST']['MODEL-1']['BEIGE']
Out[5]: ['M', 'S']

defaultdict 构造函数将一个“工厂”函数作为参数,即一个可调用函数,它在没有参数的情况下被调用以替换缺失值。例如,当您尝试访问 defaultdict(list) 时,每个丢失的键都会有一个空列表。

在这种情况下,我创建了一个嵌套的 defaultdict 对象,它为每个键创建了另一个 defaultdict。内部还创建了一个 defaultdict,它也使用 defaultdict 作为工厂。这反射(reflect)了您的数据层次结构,并为您节省了多次检查或丢失键的异常处理。

关于python - 从列表中取出一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44531951/

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