如何在Python中将2个列表放入1个字典中?

时间:2010-08-29 17:47:31

标签: python

所以情况就是这样:我有2个列表,想把它们放在字典中。

内容['这是Sams内容','这是别人的内容'] 作者['Sam','Someone Else']

这是我想要创建的词典

评论[{'内容':'这是Sams内容','作者':'Sam'},{'内容':'这是别人的内容','作者':'别人'}} / p>

我希望你明白这个问题是什么。谢谢你的帮助。

4 个答案:

答案 0 :(得分:7)

我相信你正在寻找拉链。像这样:

reviews = [{'content': c, 'author': a} for c, a in zip(contentList, authorList)]

答案 1 :(得分:0)

content = ['This is Sams Content', 'This is someone\'s else content'] 
author = ['Sam', 'Someone Else']

reviews = []

for i in range(len(author)):
    d = {
        'content': content[i],
        'author': author[i]
    }
    reviews.append(d)

for r in reviews:
    print "Author: %s, content: %s" % (r['author'], r['content'])

编辑对于那些抱怨range(len(...))不够Pythonic(我只是说“认真对待?”)的人来说,这是使用enumerate()建议的相同解决方案:

content = ['This is Sams Content', 'This is someone\'s else content'] 
author = ['Sam', 'Someone Else']

reviews = []

for i, elem in enumerate(author):
    d = {
        'content': content[i],
        'author': elem,
    }
    reviews.append(d)

for r in reviews:
    print "Author: %s, content: %s" % (r['author'], r['content'])

我个人更喜欢range(len(...))解决方案而不是enumerate,因为在创建哈希时以相同的方式访问两个数组有助于提高可读性。 zip仍然是最优雅的解决方案。

答案 2 :(得分:0)

reviews = []
authors = ['sam', 'dave']
content = ['content by sam', 'content by dave']
for a, c in zip(authors, content):
    reviews.append({'content':c, 'author':a})
print reviews

答案 3 :(得分:0)

假设内容和作者是问题中定义的数组,并假设您想要一个结果字典:

d = {}

for i in range(len(Content)):
   d[Content[i]] = Author[i]