1.list数据分割为多个小列表 (java lists.partition)
2. 分组
def groupby(mylist,key): """ :param mylist: eg: [{"user":"sea","age":"23"},{"user":"sea1","age":"22"}] :param key: eg:"user" :return: """ result = {} for data in mylist: k = data[key] value_list = result.get(k, None) if not value_list: result[k] = [data] else: value_list.append(data) return result
import itertools def partition(mylist, size): """ :param mylist: 需要分割的列表 :param size: 每几个分割一起 :return: [[],[]] """ return [mylist[i:i + size] for i in range(0, len(mylist), size)] # def groupby(mylist,key): """ :param mylist: eg: [{"user":"sea","age":"23"},{"user":"sea1","age":"22"}] :param key: eg: lambda x:x["user"] or lambda d:d.x :return: """ result = {} # lstg = groupby(mylist,key=lambda x:x['no']) lstg = itertools.groupby(mylist, key= key) for (key, group) in lstg: result[key] = list(group) return result if __name__ == '__main__': # 分割 l = [i for i in range(15)] partition1 = partition(l, 3) print(partition1)
去重: 思路其实就是先把ids变为[[], 1,2,3,......] ,然后在利用reduce的特性
def distinc(my_list): return reduce(lambda x, y: x if y in x else x + [y], [[]] + my_list)
list 对象去重
def distinct_by(lst, key): seen_values = set() unique_items = [] for item in lst: if item[key] not in seen_values: unique_items.append(item) seen_values.add(item[key]) seen_values = None return unique_items
过滤:
my_list = [] my_list.append({"sea1": 1,"age":2}) my_list.append({"sea1": 2,"age":2}) my_list.append({"sea1": 3,"age":2}) a = itertools.filterfalse(lambda x: x["sea1"]==2, my_list) print(list(a))
result: [{'sea1': 1, 'age': 2}, {'sea1': 3, 'age': 2}]
分组统计数量:
def group_count(mylist,key): ''' :param mylist: [{"user":"sea","age":"23"},{"user":"sea1","age":"22"}] :param key: :return: ''' result = {} for d in datas: v = d[key] result[v] = (result.get(v)+1) if (v in result) else 1 return result;
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-11-21 ubuntu 软件管理工具安装
2018-11-21 在Ubuntu下进行MongoDB安装步骤
2018-11-21 在Ubuntu 14.04 64bit上安装百度云Linux客户端BCloud