python list dict util (分割,分组)
1.list数据分割为多个小列表 (java lists.partition)
2. 分组
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)
过滤:
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}]
python list dict util (分割,分组)的更多相关文章
- Python中dict的特点、更新dict、遍历dict
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样.而list的查找速度随着元素增加而逐渐下降. 不过dict的查找速度快不是没有代价的,dict的缺点是占用内 ...
- Python中dict详解
from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...
- python之字符串的分割和拼接
关于string的split 和 join 方法 对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样. 1.string.split( ...
- python 字典 dict 该注意的一些操作
在用python处理dict 的时候,有几个该注意的地方,这里跟大家提一下: 1)操作dict 时,尽量少产生新的列表对象.比如: 遍历dict的时候,如果用 dic = {"a" ...
- python字典dict的增、删、改、查操作
## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...
- Python 字典 dict() 函数
描述 Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. 语法 dict() 函数函数语法: dict(key/value) 参数说明: ...
- Python 基础 Dict 和 Set 类型
python 什么是dict 例如: d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } 我们把名称称为key,对应的成绩称为value,dic就是通过key 来查找 ...
- python实现dict版图遍历
python实现dict版图遍历的示例. 代码: #_*_coding:utf_8_import sysimport osclass Graph(): def __init__(self, V, E) ...
- Python之Dict和Set类型(入门5)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407905.html 本文出自:[Edwin博客园] Python之Dict和Set类型 1. Python ...
- 'dict_values' object does not support indexing, Python字典dict中由value查key
Python字典dict中由value查key 众所周知,字典dict最大的好处就是查找或插入的速度极快,并且不想列表list一样,随着key的增加越来越复杂.但是dict需要占用较大的内存空间,换句 ...
随机推荐
- C++实现有序表--链表的合并操作代码
#include<iostream>#include<cstdlib>using namespace std;#define MAXSIZE 100#define OK 1#d ...
- PCIe收发卡设计资料:611-基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡
基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡 一.板卡概述 基于XCVU9P的5Gsps AD DA收发PCIe板卡.该板卡要求符合PCIe 3.0标准,包含一片XCVU9P-2 ...
- js两个数组对象中,获取不相同的值 非交集元素对象
查看前端面试题小程序 大量面试题和答案,请微信查看 var array1 = [ {"Num": "A " },{"Num": " ...
- gRPC中protobuff type和C# type原生标量对应表
查看Microsoft官方文档: Create Protobuf messages for .NET apps | Microsoft Docs
- Docker安装 Redis Stack(开发适配-提供 Redis Stack 服务器和RedisInsight可视化) (6.2.4-v2版本)
一.使用docker安装(开发适配-提供 Redis Stack 服务器和RedisInsight) (6.2.4-v2版本) 简介 安装命令根据实际部署情况调整 版本地址:官方镜像主页 | 发布版T ...
- Django练习过程中的错误即解决方案
问题1 这个问题是当我们跟着书上做完后,没有按照规定输入 python manage.py makemigrations learning_logs 然后输入: python manage.py mi ...
- Luogu P3368 【模板】树状数组 2 [区间修改-单点查询]
P3368 [模板]树状数组 2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表 ...
- Day14-封装、继承、多态
封装.继承.多态 一.封装 package Demo; //类 private私有 public class student { //属性私有 //名字 private String name; // ...
- 使用autoIt 上传文件(参数化)
1.编写autoit脚本:upload.au3 ControlFocus("打开", "", "Edit1") ;用于识别windwos窗口 ...
- 4组-Beta冲刺-2/5
一.基本情况 队名:摸鲨鱼小队 组长博客:https://www.cnblogs.com/smallgrape/p/15595704.html github链接:https://github.com/ ...