利用Python进行数据分析笔记:3.1数据结构

 我来答
世纪网络17
2022-07-21 · TA获得超过5914个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:138万
展开全部

元组是一种固定长度、不可变的Python对象序列。创建元组最简单的办法是用逗号分隔序列值:

tuple 函数将任意序列或迭代器转换为元组:

中括号 [] 可以获取元组的元素, Python中序列索引从0开始

元组一旦创建,各个位置上的对象是无法被修改的,如果元组的一个对象是可变的,例如列表,你可以在它内部进行修改:

可以使用 + 号连接元组来生成更长的元组:

元组乘以整数,则会和列表一样,生成含有多份拷贝的元组:

将元组型的表达式赋值给变量,Python会对等号右边的值进行拆包:

拆包的一个常用场景就是遍历元组或列表组成的序列:

*rest 用于在函数调用时获取任意长度的位置参数列表:

count 用于计量某个数值在元组中出现的次数:

列表的长度可变,内容可以修改。可以使用 [] 或者 list 类型函数来定义列表:

append 方法将元素添加到列表尾部:

insert 方法可以将元素插入到指定列表位置:
插入位置范围在0到列表长度之间

pop 是 insert 的反操作,将特定位置的元素移除并返回:

remove 方法会定位第一个符合要求的值并移除它:

in 关键字可以检查一个值是否在列表中;
not in 表示不在:

+ 号可以连接两个列表:

extend 方法可以向该列表添加多个元素:

使用 extend 将元素添加到已经存在的列表是更好的方式,比 + 快。

sort 方法可以对列表进行排序:

key 可以传递一个用于生成排序值的函数,例如通过字符串的长度进行排序:

bisect.bisect 找到元素应当被插入的位置,返回位置信息
bisect.insort 将元素插入到已排序列表的相应位置保持序列排序

bisect 模块的函数并不会检查列表是否已经排序,因此对未排序列表使用bisect不会报错,但是可能导致不正确结果

切片符号可以对大多数序列类型选取子集,基本形式是 [start:stop]
起始位置start索引包含,结束位置stop索引不包含

切片还可以将序列赋值给变量:

start和stop可以省略,默认传入起始位置或结束位置,负索引可以从序列尾部进行索引:

步进值 step 可以在第二个冒号后面使用, 意思是每隔多少个数取一个值:

对列表或元组进行翻转时,一种很聪明的用法时向步进值传值-1:

dict(字典)可能是Python内建数据结构中最重要的,它更为常用的名字是 哈希表 或者 关联数组
字典是键值对集合,其中键和值都是Python对象。
{} 是创建字典的一种方式,字典中用逗号将键值对分隔:

你可以访问、插入或设置字典中的元素,:

in 检查字典是否含有一个键:

del 或 pop 方法删除值, pop 方法会在删除的同时返回被删的值,并删除键:

update 方法将两个字典合并:
update方法改变了字典元素位置,对于字典中已经存在的键,如果传给update方法的数据也含有相同的键,则它的值将会被覆盖。

字典的值可以是任何Python对象,但键必须是不可变的对象,比如标量类型(整数、浮点数、字符串)或元组(且元组内对象也必须是不可变对象)。
通过 hash 函数可以检查一个对象是否可以哈希化(即是否可以用作字典的键):

集合是一种无序且元素唯一的容器。

set 函数或者是用字面值集与大括号,创建集合:

union 方法或 | 二元操作符获得两个集合的联合即两个集合中不同元素的并集:

intersection 方法或 & 操作符获得交集即两个集合中同时包含的元素:

常用的集合方法列表:

和字典类似,集合的元素必须是不可变的。如果想要包含列表型的元素,必须先转换为元组:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式