如何将两个列表合并为一个字典?
这是一个情况:我有两个列表,想把它们放进一个字典里。
内容列表是 ['This is Sams Content', 'This is someone's else content']
作者列表是 ['Sam', 'Someone Else']
我想创建的字典是这样的:
评论 [{'content': 'This is Sams Content', 'author' : 'Sam'}, {'content': 'This is someone's else content', 'author' : 'Someone Else'}]
希望你能明白我的问题。谢谢你的帮助。
4 个回答
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(...))
不够Python风格的人(我只想说“真的吗?”),这里有一个使用 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(...))
的方法,因为在创建哈希时以相同的方式访问两个数组能提高可读性。不过,zip
仍然是最优雅的解决方案。
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
7
你可能在找的是zip功能。大概是这样的:
reviews = [{'content': c, 'author': a} for c, a in zip(contentList, authorList)]