簡體   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