所以情况就是这样:我有2个列表,想把它们放在字典中。
内容['这是Sams内容','这是别人的内容'] 作者['Sam','Someone Else']
这是我想要创建的词典
评论[{'内容':'这是Sams内容','作者':'Sam'},{'内容':'这是别人的内容','作者':'别人'}} / p>
我希望你明白这个问题是什么。谢谢你的帮助。
答案 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]