【问题标题】:Python Dictionary inside a list (pulling individual values)列表中的 Python 字典(提取单个值)
【发布时间】:2015-12-17 14:33:31
【问题描述】:

我有一个包含字典的列表-

[{'Name of Business' : 'Amazon', 'Contact Name' : 'Jeff Bezos', 'Email' : 'Jeff@Amazon.com'},
 { {'Name of Business' : 'Microsoft', 'Contact Name' : 'Bill Gates', 'Email' : 'Bill@Microsoft.com'}]

稍后我需要将每个企业名称、联系人姓名等保存到一个变量中,或者有一种简单的方法来调用它们以供重复使用。

我发现使用类似的东西

for x in dict_list:
   print x["Client"], x['Contact Name'], x['Email']

给我所有数据的打印输出:
亚马逊 Jeff Bezos Jeff@Amazon.com
微软比尔盖茨 Bill@Microsoft.com

但是如果我只想要第一个条目中的信息怎么办?
如果我想将每个字典条目中的数据保存到单独的变量中怎么办?

使用

 first_entry = dict_list[0]  
 print first_entry["Client"], first_entry['Contact Name'], first_entry['Email']

但是必须有某种方法可以在一行中执行此操作而无需先创建另一个变量?

感谢您的帮助!

【问题讨论】:

    标签: python excel list dictionary


    【解决方案1】:

    只是不要创建变量:

    print dict_list[0]["Client"], dict_list[0]['Contact Name'], dict_list[0]['Email']
    

    或在循环中:

    idx = [1]
    for i in idx:
        print dict_list[i]["Client"], dict_list[i]['Contact Name'], dict_list[i]['Email']
    

    【讨论】:

    • 谢谢!我很欣赏两个不同的例子。
    【解决方案2】:
    print dict_list[0]["Client"], dict_list[0]['Contact Name'], dict_list[0]['Email']
    

    【讨论】:

    • 谢谢,我知道这是可以做到的,但在弄清楚确切的语法时遇到了麻烦。
    【解决方案3】:

    您的问题是您用来存储数据的结构。我建议根据您需要的操作使用 pandas 数据框来处理您的数据:

    import pandas as pd
    
    df = pd.DataFrame(l)
    #Out[5]: 
    #  Contact Name               Email Name of Business
    #0   Jeff Bezos     Jeff@Amazon.com           Amazon
    #1   Bill Gates  Bill@Microsoft.com        Microsoft
    

    每个字典条目对应一个列。 您可以将第一个条目作为一个系列访问:

    df['Name of Business']         
    #Out[9]: 
    #0       Amazon
    #1    Microsoft
    #Name: Name of Business, dtype: object
    

    或者作为一个列表:

    df['Name of Business'].tolist()
    #Out[8]: ['Amazon', 'Microsoft']
    

    【讨论】:

    • 有趣。我将不得不研究熊猫。感谢您的回复!
    • 它会避免你很多无用的循环和理解列表:)
    【解决方案4】:

    如果我想将每个字典条目中的数据保存到单独的变量中怎么办?

    您可以为此使用列表理解或map(),例如对于第一个列表元素:

    client, contact, email = map(dict_list[0].get, ("Client", "Contact Name", "Email"))
    

    【讨论】:

    • 感谢我对 Python 相当陌生,将进一步研究 map 命令!
    猜你喜欢
    • 2020-07-21
    • 2021-09-26
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 2021-09-17
    • 2013-03-28
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多