我有两个列表,每个列表包含字典:
list1 = [{'user':'John'},{'user':'Micheal'},{'user':'Sara'}]
list2 = [{'Status':'Active'},{'Status':'Active'},{'Status':'Inactive'}]
这些值在列表之间相对应,例如两个列表的索引0显示用户John处于活动状态,两个列表的索引1显示用户Michael处于非活动状态。 我想创建一个新的函数来做到这一点:
listsjoiner(list1,list2)
输出:
[{'user':'John','Status':'Active'},{'user':'Michael','status':'Active'},['user':'Sara','status':'Inactive}]
答案 0 :(得分:2)
这就是我看zip
函数的意思:
>>> result = [{**user_dict, **status_dict} for user_dict, status_dict in zip(list1, list2)]
>>> result
[{'user': 'John', 'Status': 'Active'}, {'user': 'Micheal', 'Status': 'Active'}, {'user': 'Sara', 'Status': 'Inactive'}]
答案 1 :(得分:0)
由于两个列表似乎都按照您希望它们加入的顺序排序,因此您可以将列表理解与*
运算符(splatting)一起使用以获得所需的结果。例如:
list1 = [{'user':'John'},{'user':'Micheal'},{'user':'Sara'}]
list2 = [{'Status':'Active'},{'Status':'Active'},{'Status':'Inactive'}]
results = [{**list1[i], **list2[i]} for i in range(len(list1))]
print(results)
# OUTPUT
# [{'user': 'John', 'Status': 'Active'}, {'user': 'Micheal', 'Status': 'Active'}, {'user': 'Sara', 'Status': 'Inactive'}]