列表中包含的元组和字典

时间:2016-01-12 15:48:28

标签: python list dictionary tuples

我正在尝试从包含元组和词典的列表中获取特定字典。我怎样才能用钥匙' k'返回字典?从下面的列表?

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

3 个答案:

答案 0 :(得分:7)

为了你的

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

即。列表的第一个对象是字典,包含密钥'。'。

如果找不到这样的对象,则会引发StopIteration。如果你想返回别的东西,例如None,请使用:

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

答案 1 :(得分:6)

def return_dict(lst):
    for item in lst:
       if isinstance(item,dict) and 'k' in item:
          return item
    raise Exception("Item not found")

答案 2 :(得分:0)

如果你不介意在代码中有点难看,我会遍历列表并检查每个元素。例如:

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

应该有更多的pythonic方式。