[{'姓名':'张三','体重':76,'UpdateTime':'xxx'},
{'姓名':'张三','体重':76,'UpdateTime':'xxx'},
{'姓名':'张三','体重':76,'UpdateTime':'xxx'},
{'姓名':'张三','体重':76,'UpdateTime':'xxx'}]
只判断姓名,体重即可
自己现在写的算法,是 for,for,if,if 循环历遍这样判断,最后还是能能弄出来的,
看到网上也貌似有一些一行有 lambda 搞定的优雅写法,只能学习到以一个键值对做判断的写法。。。。
|      1teawithlife      2020-09-07 18:18:24 +08:00 将姓名和体重拼成一个字符串,然后按这个新字符串去重就可以了 | 
|  |      2LokiSharp      2020-09-07 18:22:48 +08:00 via iPhone lambda 就是语法糖,没必要强求 | 
|      3dongxiao      2020-09-07 18:23:53 +08:00 via Android  1 这就是 SQL 根据某几个字段 distinct 吧,可以用 pandas 转成 DataFrame 然后 drop_duplicates,设置 subset 即可,或者用空间换时间,建个 set 存储已见到的数据 tuple,不在 set 内则追加新列表,一遍循环即可 | 
|  |      4vipppppp      2020-09-07 18:37:47 +08:00 一些语法糖本质上都是遍历,关键是回头看的时候又是一脸懵逼。。 借助一个 set 来过滤应该性能上是最高的吧 | 
|  |      5ruanimal      2020-09-07 18:46:09 +08:00 >>> from itertools import groupby ... ... data = [ ... {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, ... {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, ... {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, ... {'姓名':'张三','体重':76,'UpdateTime':'xxx'} ... ] ... ... helper = lambda i: (i['姓名'], i['体重']) ... result = [list(values)[0] for _, values in groupby(sorted(data, key=helper), key=helper)] | 
|  |      6ruanimal      2020-09-07 18:48:40 +08:00 解法 2 data = [ {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'} ] result_map = {} for i in data: result_map[(i['姓名'], i['体重'])] = i result = list(result_map.values()) | 
|  |      7imn1      2020-09-07 18:49:25 +08:00 dict1.items() & dict2.items() 自己看看结果,剩下的自己写吧 | 
|      8weyou      2020-09-07 18:52:24 +08:00  3 data = [ {'姓名':'王二','体重':60,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':70,'UpdateTime':'xxx'}, {'姓名':'李四','体重':70,'UpdateTime':'xxx'}, ] list({(r['姓名'], r['体重']): r for r in data}.values()) | 
|  |      9imn1      2020-09-07 18:54:51 +08:00 还有 dict1.items() - dict2.items() 同上,怎么组合自己想吧 | 
|  |      10wysnylc      2020-09-07 19:01:43 +08:00 | 
|  |      11TimePPT PRO  3 import pandas as pd data = [{'姓名':'张三','体重':76,'UpdateTime':'2019-09-09'}, {'姓名':'张三','体重':76,'UpdateTime':'2020-03-20'}, {'姓名':'张三','体重':76,'UpdateTime':'2020-08-11'}, {'姓名':'张三','体重':76,'UpdateTime':'2020-09-06'}] df = pd.DataFrame(data=data) df_uniq = df.drop_duplicates(subset=['姓名', '体重']) df_uniq | 
|  |      12aijam      2020-09-08 05:20:09 +08:00 list({(d['姓名'], d['体重']): d for d in data}.values()) | 
|      13billgreen1      2020-09-09 10:00:22 +08:00 sort_key = lambda doc:(doc['姓名‘], doc['体重']) [next(iterator) for key, iterator in itertools.groupby(sorted(data, key=sort_key), key = sort_key)] | 
|  |      14HiddenNPC      2020-09-09 16:22:03 +08:00 data_list = [{'姓名': '张三', '体重': 76, 'UpdateTime': 'xxx'}, {'姓名': '张三', '体重': 76, 'UpdateTime': 'xxx'}, {'姓名': '张三', '体重': 76, 'UpdateTime': 'xxx'}, {'姓名': '张三', '体重': 76, 'UpdateTime': 'xxx'}] print(reduce(lambda x, y: x if y in x else x + [y], [[], ] + data_list)) # [{'姓名': '张三', '体重': 76, 'UpdateTime': 'xxx'}] | 
|      15Pzqqt      2020-09-10 08:35:23 +08:00 ```python l = [{'姓名':'张三','体重':76,'UpdateTime':'aaa'}, {'姓名':'张三','体重':76,'UpdateTime':'bbb'}, {'姓名':'张三','体重':76,'UpdateTime':'ccc'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}] d = {} for i in range(len(l)): d = {**d, **l[i]} # d == {'姓名': '张三', '体重': 76, 'UpdateTime': 'xxx'} ``` | 
|      16biglazycat      2020-09-11 21:29:08 +08:00 dict_list = [{'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}, {'姓名':'张三','体重':76,'UpdateTime':'xxx'}] list_dict = {} for i in dict_list: list_dict.setdefault((i['姓名'], i['体重']), []).append('') print(list_dict) | 
|      17biglazycat      2020-09-11 21:41:36 +08:00 @weyou 大神,没看懂,请指点指点。 | 
|      18weyou      2020-09-12 00:13:36 +08:00 via Android @biglazycat 通过字典解析式( dictionary comprehension )以(“姓名”“体重”)这个 tuple 为 key 生成新的字典用来去重,然后获取 values 就是去重后的结果了。 | 
|      19biglazycat      2020-10-24 18:54:51 +08:00 @weyou 大神好厉害,牛 B 。 |