在Python中向字典中的列表追加另一个列表

2024-09-30 22:19:40 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我只是尝试将包含一组数字的列表附加到字典中当前为列表的值。你知道吗

我不知道这是否重要,但字典里有些列表是空的,有些包含整数。你知道吗

我认为这很简单,并尝试了最明显的事情,我就是附加列表的价值,像这样。你知道吗

middlenumberdic[y].append(numberlist)

但是,这给了我以下错误:

    middlenumberdic[y].append(numberlist)
KeyError: 786

所以我决定,问题是列表不能应用于列表,所以我把它分解成单个整数

for value in numberlist:
    middlenumberdic[y].append(value)

但这给了我同样的错误

    middlenumberdic[y].append(value)
KeyError: 792

从我的观点来看,我会认为middlenumberdic[y]会返回[123,456,789](因为这就是分配给它的内容),然后我可以直接附加到那个列表,但显然我不能

在做这一切之前,我尝试了middlenumberdic[y] = numberlist,虽然这没有导致错误,但它所做的只是覆盖我现有的列表,而不是添加到列表中。你知道吗


读后How to append to a list in a dictionary? 而且Append to a list within a dictionary我还是一点也不明白,这就是为什么我发布了这个。你知道吗

对于第一个问题,给出的答案与我使用的解决方案基本相同,但不起作用,而另一个问题对我来说太复杂,难以理解。你知道吗

这是我在这个网站上问的第一个问题,如果我做错了什么,我很抱歉。你知道吗

另外,他们的剧本更多,但我认为只有这一点是必要的


Tags: toin列表dictionary字典value错误数字
2条回答

你的问题不在于附加部分。它与访问字典中的列表有关。KeyError表示没有索引为786或792的元素。你知道吗

In [1]: a = dict()

In [2]: a[5] = []

In [3]: a
Out[3]: {5: []}

In [4]: a[5]
Out[4]: []

In [5]: a[5].append([3,4,5])

In [6]: a
Out[6]: {5: [[3, 4, 5]]}

我想你想用一个不存在的密钥访问。所以,你得到了这个KeyError。那样的话

for value in numberlist:
     middlenumberdic[y].append(value)

替换为以下内容:

for value in numberlist:
    middlenumberdic.setdefault(y,[]).append(value)

我想现在应该可以了。你知道吗

相关问题 更多 >