Python中一些高效的数据操作
- 列表统计
chars = ["a", "b", "a", "c", "a", "d"]
使用count获取单个字符出现次数
chars.count("a")
使用Counter的most_commom获取 出现次数最多的前几位
from collections import Counter
print(Counter(chars).most_common(2)
- 字典键值的集合操作
字典的keys()支持 并集| 交集 & 差集- 等集合操作
dict_a = {"a": 1, "b": 2, "c": 3 }
dict_b = {"a": 1, "c":2, "d": 4}
dict_a.keys() & dict_b.keys()
当字典的values都是字符串(无嵌套)时,字典的items()也支持集合操作
断言字典a包含字典b
assertFalse(dict_b.items() - dict_b.items())
- 列表嵌套字典操作
fruits = [{"name": "apple", "price": 4},
{"name": "orange", "price": 5}, {"name": "pear", "price":6} ,{"name": "apple", "price": 5}]
排序
sorted(fruits, key=lambda x: x["price"])
可以使用itemgetter代替lambda表达式
from operator import itemgetter
sorted(fruits, itemgetter("price"))
最小
mim(fruits, key=lambda x: x["price"])
最大
max(fruits, key=lambda x: x["price"])
使用堆获取最大/最小的前几个
import heapq
heapq.nlargest(2, fruits, key=lambda x: x["price"])
heapq.nsmallest(2, fruits, key=lambda x: x["price"]
分组groupby
from itertools import groupby
groups = groupby(fruits, key=lambda x:x["name"])
for name, fruits in groups:
print(name, len(list(fruits)))
更多学习资料请加添加作者微信:lockingfree获取
Python中一些高效的数据操作的更多相关文章
- c#搭建服务端 简单中最高效的数据操作Linq (4)
.NET F 3.5之后提出的linq to sql 概念,大大的简化了对于数据对象的操作,可以通过简单的语法直接操作数据对象,如List,Linq to sql类 等等. 1.使用Linq to s ...
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...
- Python中关于csv的简单操作
Python中关于csv的简单操作 CSV操作简单,直接import csv即可, 主要使用reader和pandas 1 reader的简单使用 csv.reader("1.csv&quo ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- Python中生成(写入数据到)Excel文件
转自http://www.crifan.com/export_data_to_excel_file_in_python/ 在Python中,如何将数据,导出为Excel,即把数据写入到新生成的ex ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
- python中 对文件的读写操作 以及如何边写入 边保存flush()
转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...
- python数据结构:pandas(2)数据操作
一.Pandas的数据操作 0.DataFrame的数据结构 1.Series索引操作 (0)Series class Series(base.IndexOpsMixin, generic.NDFra ...
- Python中的”黑魔法“与”骚操作“
本文主要介绍Python的高级特性:列表推导式.迭代器和生成器,是面试中经常会被问到的特性.因为生成器实现了迭代器协议,可由列表推导式来生成,所有,这三个概念作为一章来介绍,是最便于大家理解的,现在看 ...
随机推荐
- Centos7阿里云安装OpenProject-亲测
10/182019年10月18日13:50 参考 <https://ywnz.com/linuxyffq/4085.html> 说在前头:网上有各种教程,包括官方自己的教程,在阿里云服务器 ...
- win10+pyspark+pycharm+anaconda单机环境搭建
一.工具准备 1. jdk1.8 2. scala 3. anaconda3 4. spark-2.3.1-bin-hadoop2.7 5. hadoop-2.8.3 6. winutils 7. p ...
- iOS - App上架流程(复习+已用xcode8)
一.前言: 今天又要上架一款APP,顺便来复习一下APP上架流程 下面就来详细讲解一下具体流程步骤. 二.准备: 一个已付费的开发者账号(账号类型分为个人(Individual).公司(Company ...
- seo是什么
SEO(Search Engine Optimization):汉译为搜索引擎优化.搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式. SEO的目的是:为网站提供 ...
- js中0.1+0.2 与0.3的对比
Math.abs(0.1+0.2-0.3)<=Number.EPSILON
- 一个让Java事半功倍的反射库
在Java和Android中,我们常常会使用反射来达到一些兼容的目的.Java原生提供的反射很是麻烦,使用起来很是不方便.比如我们想要调UserManager的静态方法get,使用原生的实现如下 tr ...
- javascript_07-break 和 continue
break 和 continue break 立刻退出循环 continue 立即退出当前循环,但退出循环后会从循环的顶部继续执行 //求 200-300 之间的所有的偶数的和,用 continue ...
- kubernetes master节点部署(三)
一.部署kubernetes api服务 1.1.准备软件包 [root@linux-node1 ~]# cd /usr/local/src/kubernetes [root@linux-node1 ...
- sql网址
w3school版 https://www.w3school.com.cn/sql/index.asp 菜鸟教程版 https://www.runoob.com/sql/sql-tutorial.ht ...
- IDEA实用教程(五)——配置IDEA的JVM内存值
---恢复内容开始--- 四. 配置IDEA的JVM内存值 IDEA默认配置的JVM内存值比较低,如果硬件配置较高,可以修改该设置. 该设置需要在工程界面进行. 该操作仅建议内存8G以上,64位操作系 ...