Python数据分析-Python的数据结构、函数和文件(三)


title: ‘Python数据分析:Python的数据结构、函数和文件(三)’
abbrlink: 22313
date: 2023-08-01 18:55:20
updated: 2023-0803 12:34:39
tags:

  • python
  • 数据分析
    categories:
  • python
  • 数据分析
    keywords:
  • python
  • 数据分析
    cover: …/img/404_icecream_whale.png
    description: 本文讨论Python的内置功能。

第三章

数据结构和序列


Python的数据结构简单而强大,通晓它们才能成为熟练的Python程序员。

元组

元组是一个固定长度,不可改变的Python序列对象。

使用tuple可以将任意序列或迭代器转换成元组。

可以用方括号访问元组中的元素。和C、C++、Java等语言一样,序列是从0开始的。

元组中存储的对象可能是可变对象,一旦创建了元组,元组中的对象就不能修改了。但是当元组中包含像list这样的对象时,我们可以对list这样的元素在原位进行修改。

可以使用+将几个元组复制串联起来,得到一个新的元组。同理,将元组乘以一个整数,像列表一样,会将该元组复制整数份称为一个新的元组。

列表

与元组对比,列表的长度可变、内容可以被修改。

我们可以用方括号定义,或者使用list函数。

列表和元组的语义接近,在许多函数中可以交叉使用。

添加和删除元素

  • append在列表结尾添加元素
  • insert在特定的位置插入元素
  • pop移除并返回指定位置的元素
  • remove寻找第一个目标值并去除
  • innot in可以检查列表是否包含某个值

串联和组合列表

与元组类似,可以用+将两个列表串联起来。

如果已经定义了一个列表,用extend方法可以追加多个元素。

extend的性能要优于+

排序

我们可以使用sort函数将一个列表原地排序(而不要创建新的对象)。

二分搜索和维护已排序的列表

bisect模块支持二分查找,和向已排序的列表插入值。bisect.bisect可以找到插入值后仍保证排序的位置,bisect.insort是向这个位置插入值。

注意:bisect模块不会检查列表是否已排好序,进行检查的话会耗费大量计算。因此,对未排序的列表使用bisect不会产生错误,但结果不一定正确。

切片

用切片可以选取大多数序列类型的一部分,切片的基本形式是在方括号[]中使用[start:stop:step]

序列函数

Python有一些有用的序列函数。

enumerate函数

Python内建了一个enumerate函数,可以返回(i, value)元组序列。

for i, value in enumerate(collection):# do something with value
sorted函数

sorted函数可以从任意序列的元素返回一个新的排好序的列表。

sorted函数可以接受和sort相同的参数。

zip函数

zip可以将多个列表、元组或其它序列成对组合成一个元组列表:

seq1 = ['foo', 'bar', 'baz']seq2 = ['one', 'two', 'three']zipped = zip(seq1, seq2)list(zipped)
[('foo', 'one'), ('bar', 'two'), ('baz', 'three')]
reversed函数

reversed可以将一个序列倒序。

字典

字典是键值对的大小可变集合,键和值都是Python对象。

d1 = {'a' : 'some value', 'b' : [1, 2, 3, 4]}

通过key来访问字典中的value

可以用in检查列表和元组是否包含某个值的方法,检查字典中是否包含某个键。

可以用del关键字或pop方法(返回值的同时删除键)删除值。

集合

集合是无序的不可重复的元素的集合。你可以把它当做字典,但是只有键没有值。可以用两种方式创建集合:通过set函数或使用尖括号set语句:

set([2, 2, 2, 1, 3, 3])
{2, 2, 2, 1, 3, 3}

函数


如果你要重复使用相同或非常类似的代码,就需要写一个函数。通过给函数起一个名字,还可以提高代码的可读性。

函数使用def关键字声明,用return关键字返回值:

函数可以返回多个值。下面是一个简单的例子:

匿名(lambda)函数

Python支持一种被称为匿名的、或lambda函数。它仅由单条语句组成,该语句的结果就是返回值。它是通过lambda关键字定义的,这个关键字没有别的含义,仅仅是说“我们正在声明的是一个匿名函数”。

错误和异常处理

Python中使用try,except,finally来处理异常 。

文件和操作系统


为了打开一个文件以便读写,可以使用内置的open函数以及一个相对或绝对的文件路径:

path = 'examples/segismundo.txt'
f = open(path)

默认情况下,文件是以只读模式(‘r’)打开的。然后,我们就可以像处理列表那样来处理这个文件句柄f了,比如对行进行迭代:

for line in f:pass

从文件中取出的行都带有完整的行结束符(EOL),因此你常常会看到下面这样的代码(得到一组没有EOL的行):lines = [x.rstrip() for x in open(path)]

如果使用open创建文件对象,一定要用close关闭它。关闭文件可以返回操作系统资源:

f.close()

用with语句可以可以更容易地清理打开的文件:

with open(path) as f:lines = [x.rstrip() for x in f]

这样可以在退出代码块时,自动关闭文件。

如果输入f =open(path,'w')就会有一个新文件被创建在path,并覆盖掉该位置原来的任何数据。另外有一个x文件模式,它可以创建可写的文件,但是如果文件路径存在,就无法创建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Effective Objective-C 2.0 读书笔记—— 消息转发

Effective Objective-C 2.0 读书笔记—— 消息转发 文章目录 Effective Objective-C 2.0 读书笔记—— 消息转发前言消息转发机制概述动态方法解析处理dynamic的属性用于懒加载 消息转发快速消息转发完整消息转发 总结 前言 在前面我学习了关联对象和objc_msgSend的相关内容&a…

Hive:struct数据类型,内置函数(日期,字符串,类型转换,数学)

struct STRUCT(结构体)是一种复合数据类型,它允许你将多个字段组合成一个单一的值, 常用于处理嵌套数据,例如当你需要在一个表中存储有关另一个实体的信息时。你可以使用 STRUCT 函数来创建一个结构体。STRUCT 函数接受多个参数&…

嵌入式知识点总结 Linux驱动 (二)-uboot bootloader

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。 目录 1.什么是bootloader? 2.Bootloader的两个阶段 3.uboot启动过程中做了哪些事? 4.uboot和内核kernel如何完成参数传递? 5.为什么要给内核传递…

Unbutu虚拟机+eclipse+CDT编译调试环境搭建

问题1: 安装CDT,直接Help->eclipse Market space-> 搜cdt , install,等待重启即可. 问题2:C变量不识别vector ’could not be resolved 这是库的头文件没加好,右键Properties->C Build->Enviroment,增加…

碳化硅MOSFET相对IGBT和超结MOSFET出现价格倒挂预示着什么

碳化硅(SiC)MOSFET相对于IGBT和超结MOSFET出现价格倒挂(即SiC MOSFET单价低于传统硅基器件),这一现象反映了化合物半导体产业的深刻变革,并预示着技术、市场和产业链格局的多重演变。倾佳电子杨茜从技术突破…

openRv1126 AI算法部署实战之——TensorFlow TFLite Pytorch ONNX等模型转换实战

Conda简介 查看当前系统的环境列表 conda env list base为基础环境 py3.6-rknn-1.7.3为模型转换环境,rknn-toolkit版本V1.7.3,python版本3.6 py3.6-tensorflow-2.5.0为tensorflow模型训练环境,tensorflow版本2.5.0,python版本…

LabVIEW无线齿轮监测系统

本案例介绍了基于LabVIEW的无线齿轮监测系统设计。该系统利用LabVIEW编程语言和改进的天牛须算法优化支持向量机,实现了无线齿轮故障监测。通过LabVIEW软件和相关硬件,可以实现对齿轮箱振动信号的采集、传输和故障识别,集远程采集、数据库存储…

SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇

文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue(前端)axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 关于地址栏url和axios请求不一致VueJSPS…

jQuery小游戏(一)

jQuery小游戏(一) 嘻嘻,今天我们来写个jquery小游戏吧 首先,我们准备一下写小游戏需要准备的佩饰,如果:图片、音乐、搞怪的小表情 这里我准备了一些游戏中需要涉及到的图片 游戏中使用到的方法 eval() 函…

H3CNE-28-VRRP

虚拟网关冗余协议,Virtual Router Redundancy Protocotol 三层网关冗余技术对用户网关做冗余 VRRP配置示例 接口IP配置,略。 R1: int g0/0vrrp vrid 1 virtual 192.168.1.254vrrp vrid 1 priority 105 # 1-254,越大越优先R2: …

私有包上传maven私有仓库nexus-2.9.2

一、上传 二、获取相应文件 三、最后修改自己的pom文件

Alfresco Content Services dockerCompose自动化部署详尽操作

Alfresco Content Services docker社区部署文档 Alfresco Content Services简介 官方说明书 https://support.hyland.com/r/Alfresco/Alfresco-Content-Services-Community-Edition/23.4/Alfresco-Content-Services-Community-Edition/Using/Content/Folder-rules/Defining-…

麒麟操作系统服务架构保姆级教程(十四)iptables防火墙四表五链和防火墙应用案例

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 防火墙在运维工作中有着不可或缺的重要性。首先,它是保障网络安全的关键防线,通过设置访问控制规则,可精准过滤非法网络流量,有效阻挡外部黑客攻击、恶…

Midjourney基础-常用修饰词+权重的用法大全

用好修饰词很关键 Midjourney要用除了掌握好提示词的写法,按照上一篇《做Midjourney最好图文教程-提示词公式以及高级参数讲解》画面主体 场景氛围 主体行为 构图方式 艺术风格 图像质量。 要画出有质感的内容我们必须要掌握好“修饰词”,这些修饰…

钉钉群机器人设置——python版本

钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点) 参考文档及博客&#xff1a…

babylon.js-3:了解STL网格模型

网格模型上色 本篇文章主要介绍如何在 BabylonJS 中实现STL网格模型上色。 文章目录 网格模型上色运用场景概要延申正文加载器库的支持认识 OBJ 和 STL 文件GUI 色板选择器网格模型异步加载加载动画网格模型上色官方即将弃用 ImportMesh 而推荐使用 ImportMeshAsync 说明OBJ …

大数据治理实战:架构、方法与最佳实践

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 大数据治理是确保数据质量、合规性和安全性的重要手段,尤其在数据驱动决策和人工智能应用日益普及的背景下&…

【时时三省】(C语言基础)文件的随机读写

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 fseek 根据文件指针的位置和偏移量来定位文件指针 示例: 这个输出的就是ade seek_cur的意思是从当前偏移量 2就是从a往后偏移两个就是d 偏移量 SEEK_CUR…

yolov5错误更改与相关参数详解(train.py)

1.错误更改 main中相关参数 if __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, default, helpinitial weights path)parser.add_argument(--cfg, typestr, defaultmodels/yolov5s.yaml, helpmodel.yaml path)parser.add_arg…

第4章 基于中点电流的NPC逆变器中点电压平衡策略

1. 工作原理 1.1 NPC型三电平逆变器工作原理 NPC型三相三电平逆变器有A、B、C三个桥臂,其组成结构是相同的,本章以A相为例,对其工作原理进行分析。开关器件SA1和SA3、SA2和SA4为互补器件,通过控制开关器件的导通和关断状态&#…