功能列表字典

时间:2017-04-19 17:30:16

标签: python list dictionary

我尝试将函数对象追加到列表中,这是字典的元素:

    jobs = {}
    job = sched.add_date_job(callback, run_at, [params])
    jobs[hereCanBeRandomNumber].append(job)

但是,似乎我在最后一行遇到了问题。编译说:KeyError: 118096950

有什么问题?

2 个答案:

答案 0 :(得分:2)

您添加到词典的方式不正确。

jobs[hereCanBeRandomNumber].append(job)

转换为“使用键hereCanBeRandomNumber

将作业附加到字典的值

如果您要添加到字典中,请使用:

jobs[hereCanBeRandomNumber] = job

这将添加到jobs dict,所以它看起来像:

jobs = {118096950: job}

答案 1 :(得分:0)

所以你的问题是你试图附加一个尚不存在的密钥。

拿一本像

这样的字典

jobs = {} 并做 jobs[123].append(foo) 会产生一个KeyError,因为123还没有。

要解决此问题,您可以执行以下任一操作: from collections import defaultdict jobs = defaultdict(list) jobs[123].append(foo) 这意味着如果某个键不存在,则首先将其初始化为空列表或

jobs = {} jobs[123] = jobs.get(123, []).append(job) 检查作业是否存在密钥,如果不存在,则使用空列表