Python入门_浅谈数据结构的4种基本类型


Posted in Python onMay 16, 2017

数据结构:通俗点说,就是储存大量数据的容器。这里主要介绍Python的4种基本数据结构:列表、字典、元组、集合。

格式如下:

列表:list = [val1,val2,val3,val4],用中括号;
字典:dict = {key1:val1,key2:val2},大括号,且每个元素是带有冒号的key与val的对应关系组;
元组:tuple = (val1,val2,val3,val4),小括号;
集合:set = {val1,val2,val3,val4},大括号。

1. 列表:

list = [val1,val2,val3,val4]

列表最显著的特征是:

列表中每个元素都是可变的;
列表中的元素都是有序的,即每个元素都有一个位置;
列表可以容纳Python中的任何对象。
接下来看下列表的增删改查。

增:

1 list = [1,'dwd',3.6]
2 list.insert(0,'Python')
3 print(list)

用insert方法可以实现在列表中增加元素。insert方法需要写明增加在哪个位置和增加的内容,新增元素的实际位置是在指定位置元素之前的位置;如果指定的位置不存在,默认会增加在列表末尾。

1 list = [1,'dwd',3.6]
2 list[0:0] = [9]
3 # 【0:0】是指在list中的第1个位置插入新元素
4 list[3:3] = ['a']
5 # 【3:3】是指在list中的第4个位置插入新元素
6 print(list)

上面说到的这两种方法都是添加单个元素,除了添加单个元素外,还可以添加多个元素,用extend方法来实现。

1 list_a = [1,'dwd',3.6]
2 list_b = ['Python',56,'game']
3 list_a.extend(list_b)
4 # extend方法用于在列表末尾一次性追加另一个列表中的多个值
5 print(list_a)

 删:

 

1 list = [1,'dwd',3.6]
2 list.remove('dwd')
3 print(list)

 删除列表中的元素除了用上面的remove方法来实现外,也可以用del关键字来声明:

1 list = [1,'dwd',3.6]
2 del list[0:2]
3 # 【0:2】是删除第1和第2个位置的元素
4 print(list)

改:

1 list = [1,'dwd',3.6]
2 list[2] = 7
3 list[0] = 'start'
4 print(list)

如果想要替换掉列表中的某个元素,可以直接给列表某位置的元素重新赋值,list[2]指list列表中的第3个元素。

查:

列表的索引与之前文章《Python入门_浅谈字符串的分片与索引、字符串的方法》中提到的字符串的索引类似,同样是分正反两种索引方式,可以从前往后,也可以从后往前索引。比如:

list = [1,'dwd',3.6]
print(list[1])
# 打印第2个位置的元素
print(list[-1])
# 打印倒数第一个位置的元素
print(list[:2])
# 打印第1和第2个元素
print(list[1:])
# 打印第2到最后一个的元素

但如果想查看某个元素的位置,就不适合用这种方式,程序会报错。因为列表只接受用位置进行索引,不可以通过元素来查找位置。

2. 字典:

dict = {key1:val1,key2:val2}

编程世界中的很多概念都源自于生活,字典也是。这种数据结构如我们使用的字典一样,通过“名称—内容”来构建,在Python中每个元素是带有冒号的key与val的对应关系组,习惯称之为键值对。

字典的特征如下:

字典中的元素必须是键值对的形式;

键(key)不可以重复,而值(val)可以重复;

键不可变,无法修改;值可修改,可以是任何对象。

即使字典中有重复的键,打印出来时也只会出现一次。比如:

1 dict = {'A':'art','B':'big','C':'cute','C':'cute'}
2 print(dict)

接下来看下字典的增删改查。

增:

字典中没有像列表那样有一个现成的insert方法可以使用,但可以通过下面这种方式插入元素,元素默认会插入在最后一个位置。

1 dict = {'A':'art','B':'big','C':'cute'}
2 dict['D'] = 'dictionary'
3 print(dict)

上面讲到在列表中增加多个元素时可以使用extend方法来实现,在字典中也有对应的update方法来实现添加多个元素。

1 dict = {'A':'art','B':'big','C':'cute'}
2 dict.update({'D':'dictionary','E':'exam'})
3 print(dict)

删:

在字典中删除某元素,也可以使用del关键字。

1 dict = {'A':'art','B':'big','C':'cute'}
2 del dict['B']
3 print(dict)

需要注意的是,虽然字典是用大括号的,但在删除时依然使用的是中括号。

改:

如果要修改字典里的元素,直接重新给键赋值即可。

1 dict = {'A':'art','B':'big','C':'cute'}
2 dict['B'] = 'beyond'
3 print(dict)

查:

在字典中进行索引时,和删除一样,用的是中括号,中括号中存放字典的键,也就是说对字典元素进行索引时是通过键来索引的。

1 dict = {'A':'art','B':'big','C':'cute'}
2 dict['B']
3 print(dict['B'])

之前在文章《Python入门_浅谈字符串的分片与索引、字符串的方法》中有提到过字符串的分片,在字典里,字符串是不可以进行分片的。

3. 元组

tuple = (val1,val2,val3,val4)

Python中的元组与列表类似,不同之处在于元组不可以修改,类似于稳固版的列表,因此在列表中可以使用的增删改的方法在元组中是不可以使用的,但是可以对元组中的元素进行索引,和列表类似。

1 tup = (1,2,'s',7)
2 print(tup[0])
3 print(tup[-1])
4 print(tup[1:])
5 print(tup[:-2])

4. 集合

set = {val1,val2,val3,val4}

集合的概念有点接近于数学上的集合。每个集合中的元素是无序的、不重复的任何对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。

集合不可以被切片也不能被索引,除了做集合运算之外,集合元素可以被添加和删除。

set = {7,1,8,3,4,5,3}
set.add(0)
# 新增元素0
set.discard(7)
# 删除掉元素7
print(set)
# 打印出的集合会从小到达排列,并去重

等后面如果用到集合时,再详细展开集合的运算。

后续会介绍下数据结构的一些小技巧。

操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac

以上这篇Python入门_浅谈数据结构的4种基本类型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下线程之间的共享和释放示例
May 04 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
Python返回数组/List长度的实例
Jun 23 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
python pygame实现球球大作战
Nov 25 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
Python requests获取网页常用方法解析
Feb 20 Python
python代码区分大小写吗
Jun 17 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 #Python
python将ansible配置转为json格式实例代码
May 15 #Python
用Python设计一个经典小游戏
May 15 #Python
Python 对象中的数据类型
May 13 #Python
Python中matplotlib中文乱码解决办法
May 12 #Python
使用Python对Csv文件操作实例代码
May 12 #Python
python 读取excel文件生成sql文件实例详解
May 12 #Python
You might like
PHP print类函数使用总结
2010/06/25 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
Python中的map、reduce和filter浅析
2014/04/26 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python中的for循环
2018/09/28 Python
Python实现FTP文件传输的实例
2019/07/07 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
高中毕业自我鉴定
2013/12/13 职场文书
公司外出活动方案
2014/08/14 职场文书
家长学校教学计划
2015/01/19 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技