【问题标题】:Tuples and Dictionaries contained within a List列表中包含的元组和字典
【发布时间】:2016-04-17 07:48:15
【问题描述】:

我正在尝试从包含元组和字典的列表中获取特定字典。我将如何从下面的列表中返回带有键“k”的字典?

lst = [('apple', 1), ('banana', 2), {'k': [1,2,3]}, {'l': [4,5,6]}]

【问题讨论】:

    标签: python list dictionary tuples


    【解决方案1】:
    def return_dict(lst):
        for item in lst:
           if isinstance(item,dict) and 'k' in item:
              return item
        raise Exception("Item not found")
    

    【讨论】:

      【解决方案2】:

      为你的

      lst = [('apple', 1), ('banana', 2), {'k': [1,2,3]}, {'l': [4,5,6]}]
      

      使用

      next(elem for elem in lst if isinstance(elem, dict) and 'k' in elem)
      

      返回

      {'k': [1, 2, 3]}
      

      即列表中的第一个对象,它是一个字典并包含键“k”。

      如果没有找到这样的对象,这会引发StopIteration。如果您想返回其他东西,例如None,使用这个:

      next((elem for elem in lst if isinstance(elem, dict) and 'k' in elem), None)
      

      【讨论】:

        【解决方案3】:

        如果您不介意代码有点丑,我会遍历列表并检查每个元素。示例:

        def find_dict(lst):
            for element in lst:
                if type(element) == dict:
                    if 'k' in element.keys():
                        return element
        

        应该有一个更pythonic的方式来解决这个问题。

        【讨论】:

        • 输入这个时间太长了.. teamProbable 获胜!
        猜你喜欢
        • 2017-10-08
        • 2021-04-18
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-31
        相关资源
        最近更新 更多