繁体   English   中英

来自四个不同列表的 Python 字典列表

[英]Python list of dictionaries from four different lists

有人可以帮我在 Python 中创建字典列表吗?

我想将以下列表转换为 Python 中的字典列表。

        value1 = ['name1', 'name2', 'name3', 'name4']
        value2 = ['6.0',  '8.5', '7.0', '9.5']
        value3 = [500, 600, 900, 750]
        value4 = ['$$','$$$','$', '$$']


        keys = ['name', 'rate', 'rev', 'amount']

The output list of dictionaries should look like this:

  [ {'name':'name1', 'rate':'6.0', 'rev':500, 'amount':'$$'},  
    {'name':'name2', 'rate':'8.5', 'rev':600, 'amount':'$$$'},  
    {'name':'name3', 'rate':'7.0', 'rev':900, 'amount':'$'},  
    {'name':'name4', 'rate':'9.5', 'rev':750, 'amount':'$$'} ]

Thanks.

你可以试试这个:

value1 = ['name1', 'name2', 'name3', 'name4']
value2 = ['6.0',  '8.5', '7.0', '9.5']
value3 = [500, 600, 900, 750]
value4 = ['$$','$$$','$', '$$']
results = [dict(zip(['name', 'rate', 'rev', 'amount'], i)) for i in zip(*[value1, value2, value3, value4])]

输出:

[{'amount': '$$', 'rate': '6.0', 'rev': 500, 'name': 'name1'}, {'amount': '$$$', 'rate': '8.5', 'rev': 600, 'name': 'name2'}, {'amount': '$', 'rate': '7.0', 'rev': 900, 'name': 'name3'}, {'amount': '$$', 'rate': '9.5', 'rev': 750, 'name': 'name4'}]

使用列表理解,像这样

value1 = ['name1', 'name2', 'name3', 'name4']
value2 = ['6.0',  '8.5', '7.0', '9.5']
value3 = [500, 600, 900, 750]
value4 = ['$$','$$$','$', '$$']


results = [{'name':name, 'rate':rate, 'rev':rev, 'amount':amount} for name, rate, rev, amount in zip(value1, value2, value3, value4)]

这为您提供了一个字典列表:

[{'amount': '$$', 'name': 'name1', 'rate': '6.0', 'rev': 500},
 {'amount': '$$$', 'name': 'name2', 'rate': '8.5', 'rev': 600},
 {'amount': '$', 'name': 'name3', 'rate': '7.0', 'rev': 900},
 {'amount': '$$', 'name': 'name4', 'rate': '9.5', 'rev': 750}]

我们可以使用zip一次从value1value2value3value4中获取一个值,并将它们输入到列表中的每个字典中。 然后我们用列表推导式迭代这个列表对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM