gpt4 book ai didi

python - 合并两个在字典中具有相同项目的列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:14 24 4
gpt4 key购买 nike

我有两个名为 a_listb_list 的列表:

a_list = [{'category_id': 1, 'category_name': u'AAA'}, \
{ 'category_id': 2, 'category_name': u'BBB'}]

b_list = [{'project_count': u'20', 'category_name': u'AAA'}, \
{'project_count': u'31', 'category_name': u'BBB'}]

我想制作一个新列表,c_list,它结合了 a_listb_list 以及 category_name。结果列表应如下所示:

c_list = [{'category_id': 1,'project_count': u'20', 'category_name': u'AAA'},\
{'category_id': 2,'project_count': u'31', 'category_name': u'BBB'}]

目标是能够访问同一“category_name”的 page_max 和“category_id”。

for entry in c_list:
page_num =1
category_name = entry['category_name']
category_id = entry['category_id']
url = 'https://www.test.com?category_id=%(category_id)s&page=%(page)s' % {'category_id': category_id, 'page': str(page_num)}
print url

# AAA project_count is 20
# BBB project_count is 31
page_max = int(entry['project_count'])
for i in range(page_max - 1):
page_num += 1
url = 'https://www.test.com?category_id=%(category_id)s&page=%(page)s' % {'category_id': category_id, 'page': str(page_num)}
print url

如何根据键 'category_name' 的值合并列表中的字典?

最佳答案

您可以创建一个 {category_name: dict} 的中间字典,然后使用更新:

temp = {a['category_name']: dict(a) for a in a_list}
for b in b_list:
temp[b['category_name']].update(b)
c_list = list(temp.values()) # list() unnecessary in py2.X

但这并不能保证保持列表的顺序。如果顺序很重要:

c_list = [temp[a['category_name']] for a in a_list]

关于python - 合并两个在字典中具有相同项目的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32687664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com