简体   繁体   English

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

[英]Python list of dictionaries from four different lists

Can someone help me with creating a list of dictionaries in Python.有人可以帮我在 Python 中创建字典列表吗?

I want to convert the below lists into list of dictionaries in 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.

You can try this:你可以试试这个:

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

Output:输出:

[{'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'}]

Use list comprehension, like this使用列表理解,像这样

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

This gives you a list of dictionaries:这为您提供了一个字典列表:

[{'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}]

We can use zip to take one value from value1 , value2 , value3 and value4 at a time and feed them into each dictionary in the list.我们可以使用zip一次从value1value2value3value4中获取一个值,并将它们输入到列表中的每个字典中。 We then iterate over this list object with list comprehension.然后我们用列表推导式迭代这个列表对象。

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

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