Python:列表字典去重

一、 感谢:https://www.cnblogs.com/yifengs/p/12314983.html

ll = [
        {
            "name":"1",
            "no":"2"
        },
        {
            "name": "1",
            "no": "2"
        },
        {
            "name": "2",
            "no": "3"
        }
    ]

    func = lambda x, y: x if y in x else x + [y]
    ll = reduce(func, [[], ] + ll)
    print(ll)  # [{'name': '1', 'no': '2'}, {'name': '2', 'no': '3'}]

输出:

[{'name': '1', 'no': '2'}, {'name': '2', 'no': '3'}]

二、感谢:http://t.zoukankan.com/a438842265-p-13671048.html

raw_list = [
            ["百度", "CPY"],
            ["百度", "CPY"],
            ["京东", "CPY"],
            ["百度", "CPY", ]
        ]
new_list = [list(t) for t in set(tuple(_) for _ in raw_list)]
new_list.sort(key=raw_list.index)
print(new_list)     # [['百度', 'CPY'], ['京东', 'CPY']]
  

data_list = [{"a": "123", "b": "321"}, {"a": "123", "b": "321"}, {"b": "321", "a": "23"}]


seen = set()
new_l = []
for d in data_list:
    t = tuple(d.items())
    if t not in seen:
        seen.add(t)
        new_l.append(d)
print(new_l)  # [{'a': '123', 'b': '321'}, {'b': '321', 'a': '23'}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值