Python 将一个列表中的dict添加到另一个列表中

Python 将一个列表中的dict添加到另一个列表中,python,list,dictionary,Python,List,Dictionary,我有一个包含字典的列表,我想将该列表中的每三个条目添加到一个新条目中 列表如下所示: result = [{"link": "example.com", "text": "Some description"}, {"link": "example2.com", "text": "lorem ipsum"}] ... for i in range(0, len(list), 3): cleanresults.extend(list[i]) 现在,我的循环如下所示: result = [

我有一个包含字典的列表,我想将该列表中的每三个条目添加到一个新条目中 列表如下所示:

result = [{"link": "example.com", "text": "Some description"}, {"link": "example2.com", "text": "lorem ipsum"}] ...
for i in range(0, len(list), 3):
    cleanresults.extend(list[i])
现在,我的循环如下所示:

result = [{"link": "example.com", "text": "Some description"}, {"link": "example2.com", "text": "lorem ipsum"}] ...
for i in range(0, len(list), 3):
    cleanresults.extend(list[i])
但是它没有复制整个列表,而是只添加了键

["link", "text", "link", "text"]

我做错了什么?

您想追加,而不是扩展:

for i in range(0, len(list), 3):
    cleanresults.append(list[i])
扩展从传入的对象添加包含的元素;当您在字典上进行迭代时,会得到键,因此这些键会被添加到
cleanresults
列表中,而不是字典本身

更清楚地说,您可以创建原始列表的副本,每3个元素使用一个:

如果您不需要副本,但只需要在迭代时访问每三个元素,您还可以使用:

您可以尝试以下方法:

result = [{"link": "example.com", "text": "Some description"}, {"link": "example2.com", "text": "lorem ipsum"}] ...

new_result = result[::3] #this list slicing will take every third element in the result list
输出:

[{'text': 'Some description', 'link': 'example.com'}]

要将元素添加到列表中,请使用
append()
而不是
extend()
extend
接受一个iterable,它是
list[i]
(a
dict
)的值;作为一名飞行员,你只要拿到钥匙就行了。