Python进阶:列表、元组、字典、集合

本文深入解析Python中的数据结构,包括列表、元组、字典和集合的特性与操作方法,如添加、删除、查找等,并介绍了数据结构之间的互相转换及遍历技巧。

列表list:变长容器,顺序存储,数量有限制

1. 添加元素:append(元素)、insert(下标, 元素)、+=、extern(列表)
2. 删除元素:remove(下标)、del list(下标)、pop()
3. 查找:in
4. 查找元素出现个数:count()
5. 清空:clear()
6. 长度:len()

注意:列表中可以存储不同的数据类型

元组tuple:与list类似,只是不能对元素进行添加、删除、修改,在创建时间和占用的空间上面都优于列表

1. 当只有一个元素时添加一个逗号

字典dict

1. 添加元素:d["key"] = value
2. 删除元素:d.popitem() 如果字典是空的抛出异常、del d["key"]
3. 修改元素:d["key"] = value、d.update(key=value, key=value)
4. 查找key:in
5. 获取键对应的值:d["key"](如果键不存在则抛出异常)、d.get("key", default) (找不到key时返回默认值或None)
6. 清空:clear()
7. 键:keys()
8. 值:values()
9. 项:items()
10. 有序字典
from collections import OrderedDict
d = OrderedDict()
d ["key"] = value

集合set:不允许有重复元素

1. frozenset 不可变集合
2. 添加元素:add(元素)、update(元素)
3. 删除:remove(下标)
4. 交集:&
5. 并集:|
6. 差集:-
7. 对称差集:^
8. 子集:<=、issubset(集合)
9. 超集:>=、issuperset(集合)

删除

pop(index):删除index处的值,并且返回这个值.
del(data[index]):删除index处的值,无返回值,del中的index可以是切片,所以可以实现批量删除.
remove(value):删除第一个等于value的值,无返回.

嵌套

1. 不要受数组的影响,元素类型可以不一样,比如 li=[ "abc", 1, 2.0, True ]
2. 可以互相嵌套,比如,li = [ "abc", (1, 2, 3), [ 1, 2, 3 ]

复制

1. 浅拷贝:copy()  只复制表层元素,如果元素是指针,不复制指针指向的内存
2. 深拷贝:copy.deepcopy() 如果元素是指针,复制指针指向的内存

互相转换

1. 转换为列表:list()
2. 转换为元组:tuple()
3. 转换为集合:set()    注意:会去除重复元素

遍历

1. 列表、元组、集合
for i in data:
    print(i)
2. 字典
    # 遍历键再通过键取值
    for k in d:
        print(k, d[k])
    # 取出项
    for k, v in d.items():
        print(k, v)
3. 获取元素下标和值(只对列表和元组有用,字典和集合是无序的)
for i in enumerate(data):
    print(i)

对list元素进行统一操作:(一般使用匿名函数)

1. apply(函数名,list)   修改元素值
2. map(函数名,list)     修改元素值
3. filter(函数名,list)     过滤,留下满足条件的元素
4. reduce(函数名,list) 累加,累乘

排序

1. sort() 改变原始数据
2. sorted() 返回排序后的副本,不改变数据
sort() 和 sorted() 默认正序排序(字母表顺序),可通过reverse参数改为反序
sorted(data, reverse=True)
3. reverse() 反序
4. 字典根据键排序
for k in sorted(d.keys()):
    print(k)
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值