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]
(adict
)的值;作为一名飞行员,你只要拿到钥匙就行了。