我正在尝试将列表中的某些数据转换为字典。但是,我希望这个字典有多个具有多个值的键,例如:
清单:
titles = [ "title1", "title2" ]
ids = [ 1, 2 ]
字典:
dictionary = { "title" : "title1", "title2", "id" : 1, 2 }
有点像JSON的想法...... 列表中实际上有很多条目,所以我不能手动完成每个条目。我想,我可以使用一个循环吗?
答案 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']}