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

时间:2017-07-11 13:23:56

标签: 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])

但不是复制整个列表,而是只添加键

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

我做错了什么?

2 个答案:

答案 0 :(得分:6)

您希望追加,而不是延伸:

for i in range(0, len(list), 3):
    cleanresults.append(list[i])

Extending从您传入的对象中添加包含的元素;当您遍历字典时,您会获得密钥,然后将这些密钥添加到cleanresults列表中,而不是字典本身。

更干净地说,你可以创建原始列表的副本,每个第3个元素都带有slice

cleanresults = list[::3]

如果您不想复制,但只需要在迭代时访问每个第三个元素,您还可以使用itertools.islice() object

from itertools import islice

for every_third in islice(list, 0, None, 3):
    # do something with every third dictionary.

答案 1 :(得分:4)

你可以试试这个:

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'}]