如果字典列表有某个键,那么使用它

时间:2018-04-09 10:44:00

标签: python dictionary

我对Python有点新手并且在搜索方面没有成功,所以我希望这不是重复。

我正在创建一个必须由函数处理的异常列表。此列表包含字典。 如果函数的index-key对应于exception-list的index-key,则必须在处理中使用它的值。

def main():
    orig_destlist = getDestinations() #Contains all destinations in a list
    destlist = []
    func1(orig_destlist,destlist)
    do_something_with_the_new_list(destlist)

def func1(orig_destlist,destlist):
    exceptions = []; 
    exceptions.append({'index': 10, 'orig': "Departure", 'new': "Pending"})
    exceptions.append({'index': 15, 'orig': "Pending",   'new': "Arrival"})
    func2(orig_destlist,destlist,exceptions)

def func2(orig_destlist,destlist,exceptions):
    for i in range (0,90):
            #That's the command I want to figure out. 
            #If the dictionary list contains somewhere a key 'id'
            #which hast the value of i
            if any(i in 'index' for ex in exceptions):
                destlist.append({'id': i, 'dest': ex['new']})
            else: #If it doesn't contain the key, do the regular thing
                destlist.append({'id': i, 'dest': orig_destlist[i]})

我很清楚代码是错误的。找出列表中是否存在某个键并在if中使用它的正确方法是什么?

答案已经出现:How can I check if key exists in list of dicts in python? 但它似乎没有处理else - 我需要的部分。

1 个答案:

答案 0 :(得分:0)

检查按键很简单

newl =  {'index': 10, 'orig': "Departure", 'new': "Pending", 'index2': 23}

for key in newl.keys():
  print(key)

输出

index
orig
new
index2

现在您可以在输出上运行第二个函数。