如何将多个列表附加到python字典中的一个键?

时间:2015-12-30 23:53:50

标签: python list python-2.7 dictionary python-2.x

我想将值附加到字典中的键,其中值实际上是列表。可能有一个列表,或者可能有多个列表。

我正在尝试这样做的当前方式,我尝试添加的新列表只是覆盖了最后一个列表。据我所知,我不能将列表附加到这样的字典中:

my_dict.append(my_list))

相互覆盖的当前代码:

urls[domain] = [uri, datecreated]

这可能吗?如果是这样,怎么样?

示例结果如下所示

print all keys and values in urls{}:
google.com : ['/helloworld', 2010-04-02], ['/apage/anotherpage', 2015-09-12] 
microsoft.com : ['/awebpage', 2009-02-01], ['/bananas', 2015-12-24], ['/anothergreaturi', 205-12-10] 

4 个答案:

答案 0 :(得分:6)

您可以将每个词典条目列为一个列表,以便附加到该列表。

>>> a = Linter("ahahah")
>>> a.write_file()
>>> a = dict()
>>> a["first"] = []
>>> a["first"].append([1,2,3])
>>> a["first"].append([4,5,6])
>>> a["second"] = []
>>> a["second"].append([7,8,9])
>>> a
{
 'second':[  
              [7, 8, 9]
          ], 
 'first': [  
              [1, 2, 3], 
              [4, 5, 6]
          ]
}

但老实说,在某些时候只考虑使用类?

答案 1 :(得分:3)

这是你想要实现的目标吗?

>>> d={'a': ['b']}
>>> d['a']
['b']
>>> d['a'] += ['c']
>>> d['a']
['b', 'c']

答案 2 :(得分:3)

您可以使用defaultdict来完成您的需要。

from collections import defaultdict
my_dict = defaultdict(list)
my_dict[1].append([1,2])
my_dict[1].append([3,4])
my_dict[2].append([8,9])

现在,您可以访问每个关键元素,就像访问dictionary

一样
>>> my_dict[1]
[[1, 2], [3, 4]]


>>> for k, v in my_dict.iteritems():
        print k,v

1 [[1, 2], [3, 4]]
2 [[8, 9]]

答案 3 :(得分:0)

class My_Dictionary(dict):

    def __init__(self):
        self = dict()

    def add(self, key, value):
        try:
            self[key].append(value)
        except KeyError:
            self[key] = [value]

if __name__ == '__main__':
    dict_obj = My_Dictionary()
    key = 0
    take_1 = [1,6,2,4]
    take_2 = [7,3,5,6]
    dict_obj.add(key, take_1)
    dict_obj.add(key, take_2)
    print(dict_obj)

此代码将以您想要的格式返回字典。 {0:[[1,6,2,4],[7,3,5,6]]}