将字典添加到字典或列表中会显示重复项

时间:2018-08-29 05:58:36

标签: python arrays dictionary

我知道标题似乎很简单,但是我尝试了多种方法,但是我却无法实现我想要的。

我尝试了不同的方法,在这里研究了类似的问题,并尝试了他们的解决方案,但是我无法使其工作。

我正在尝试过滤列表,然后返回包含字典(json)的字典

def clean_content(data):
    single = {}
    cdata = {}
    for i in range(len(data):
        single.clear()
        single['id'] = data[i]['id']
        single['title'] = data[i]['title']
        single['url'] = data[i]['alternate'][0]['href']
        cdata[i] = single
    print(cdata)

这将为每个cdata打印相同的值:

{0: {'id': '456', 'title': 'def', 'url': 'https'}, 1: {'id': '456', 'title': 'def', 'url': 'https'}}

注意索引0,1具有相同的精确值。

如果我尝试在循环内打印(单张):

{'id': '123', 'title': 'abc', 'url': 'http'}

{'id': '456', 'title': 'def', 'url': 'https'}

它向我显示了一个有意义的不同值,但我不确定为什么最终结果显示的是上一个值的重复。

我尝试了cdata.update({i:single})而不是=,仍然是同样的问题。

我尝试了不同的方法,用数组代替字典

def clean_content(data):
    single = {}
    cdata = []
    for i in range(3):
        single.clear()
        single['id'] = data[i]['id']
        single['title'] = data[i]['title']
        single['url'] = data[i]['alternate'][0]['href']
        cdata.append(single)
    print(cdata)

,我得到相同的结果!该列表仅包含最后一个元素的重复项 有人可以告诉我我在这里想念什么吗?

0 个答案:

没有答案