我的字典列表如下
d =
[ { 'type': 'AB', 'name': 'a@gmail.com', 'flag':'Y' },
{ 'type': 'AB', 'name': 'cd@gmail.com', 'flag''Y' },
{ 'type': 'DE', 'name': 'm@gmail.com | n@gmail.com', 'flag':'Y' },
{ 'type': 'FG', 'name': '0@gmail.com', 'flag':'N' },
{ 'type': 'FG', 'name': 'p@gmail.com', 'flag':'N' } ,
{ 'type': 'DE', 'name': '0@gmail.com', 'flag':'Y' }]
flag
和 type
是否相同后,添加到 type
|
必须用逗号分隔预期
[ { 'type': 'AB', 'name':[ 'a@gmail.com', 'cd@gmail.com'], 'flag':'Y' },
{ 'type': 'DE', 'name': ['m@gmail.com , n@gmail.com', '0@gmail.com'], 'flag':'Y' },
{ 'type': 'FG', 'name': '0@gmail.com', 'p@gmail.com'], 'flag':'N' } ]
答案 0 :(得分:1)
我相信这可以满足您的要求:
new_list = []
for old_dict in d:
old_dict["name"] = list(map(str.strip, old_dict["name"].split("|")))
for new_dict in new_list:
if (
old_dict["type"] == new_dict["type"]
and old_dict["flag"] == new_dict["flag"]
):
new_dict["name"] += old_dict["name"]
break
else:
new_list.append(old_dict)
因此,在结合 name
属性的同时,从旧的字典中创建一个新的字典列表。如果它有效或者您有任何问题,请告诉我。