将列表数据存储到字典中

时间:2013-12-04 02:47:03

标签: python list dictionary

我正在尝试将列表中的某些数据转换为字典。但是,我希望这个字典有多个具有多个值的键,例如:

清单:

    titles = [ "title1", "title2" ]
    ids = [ 1, 2 ]

字典:

    dictionary = { "title" : "title1", "title2", "id" : 1, 2 }

有点像JSON的想法...... 列表中实际上有很多条目,所以我不能手动完成每个条目。我想,我可以使用一个循环吗?

4 个答案:

答案 0 :(得分:2)

您可能需要defaultdict

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d['title'].append('title1')
>>> d['title'].append('title2')
>>> print d
defaultdict(<type 'list'>, {'title': ['title1', 'title2']})

但是,在您的情况下,您可以这样做:

dictionary = {'title':titles, 'id':ids}

答案 1 :(得分:1)

如果您愿意,可以使用元组将项目链接在一起(使用括号)。这样,您可以使用一个键访问多个项目。我不太清楚这是否是您正在寻找的,但我希望它有所帮助。

dictionary = { "title" : ("title1", "title2"), "id" : (1, 2) }
#dictionary[title][0] returns "title1"
#dictionary[title][1] returns "title2"

有关元组的更多信息: http://docs.python.org/release/1.5.1p1/tut/tuples.html

答案 2 :(得分:0)

你也可以试试这个:

>>> titles = ["t1","t2"]
>>> ids = [1,2]
>>> dct = {"titles": titles, "ids":ids}
>>> dct
{'titles': ['t1', 't2'], 'ids': [1, 2]}

答案 3 :(得分:0)

另一个解决方案是使用dict setdefault函数

>>> d = {}
>>> d.setdefault('title', []).append('title1')
>>> d.setdefault('title', []).append('title2')
>>> d
{'title': ['title1', 'title2']}