如何将两个列表合并为一个字典?

1 投票
4 回答
615 浏览
提问于 2025-04-16 03:27

这是一个情况:我有两个列表,想把它们放进一个字典里。

内容列表是 ['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)]

撰写回答