从字典创建多个列表的最佳方法

问题描述 投票:0回答:2

从字典创建多个列表的最佳方法是什么?我的字典是这样的:

mydict = {'aaa': ['111', '222', '333'], 'bbb': ['444', '555']}

我正在尝试制作这样的列表:

aaa ['111', '222', '333']
bbb ['444', '555']
...

我已经尝试过了

result = []
For key, value in mydict.item()
    result[key].append(value)

这会返回类型错误。

python python-3.x list dictionary append
2个回答
0
投票

这与您想要的最接近,代码中的问题是初始化

result
列表并访问其元素的方式。您可以通过使用循环迭代字典项来获得您想要的结果。然后,该列表将填充包含字典中的键和值对的元组,然后您需要循环
result
来打印输出。

mydict = {'aaa': ['111', '222', '333'], 'bbb': ['444', '555']}
result = []

for key, value in mydict.items():
    result.append((key, value))

# Printing the result
for key, value in result:
    print(key, value)

输出:

aaa ['111', '222', '333']
bbb ['444', '555']

0
投票

将字典键转换为变量是可能的,但不是您在实际程序中想要做的事情:

>>> globals().update(mydict)
>>> aaa
['111', '222', '333']
>>> bbb
['444', '555']

如果您只想打印输出看起来像这样,那么使用 for 循环来打印:

for i in mydict.items(): print(*i)

aaa ['111', '222', '333']
bbb ['444', '555']

如果您想按名称操作列表,您可以创建一个字典子类,将其键作为属性名称处理:

class fieldDict(dict): __getattr__ = dict.__getitem__

lists = fieldDict(mydict)

lists.aaa   # ['111', '222', '333']  
lists.bbb   # ['444', '555']
© www.soinside.com 2019 - 2024. All rights reserved.