前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >09.程序编程基础3~组合数据类型

09.程序编程基础3~组合数据类型

作者头像
大牧莫邪
发布2018-08-27 16:40:17
4730
发布2018-08-27 16:40:17
举报

接着上一章内容,继基本数据类型之后,本章进行组合数据类型的讲解

3.2. 组合数据类型

python中为了方便一部分相似数据的处理,提供了各种组合类型,常见的如列表、元组 python中的列表是可变序列,元组是不可变序列

3.2.1. 列表

列表的语法结构:通过一堆方括号包含起来的数据序列,可以存放重复数据

代码语言:javascript
复制
name = ['张小凡', '碧瑶', '陆雪琪', '林惊羽']

因为列表本身也是对象,所以可以进行嵌套处理

代码语言:javascript
复制
user = [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]

列表数据的查看,可以通过索引/下标进行查看

代码语言:javascript
复制
> user
 [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]
> user[1]
['碧瑶', '鬼王宗']
> user[1][0]
'碧瑶'

列表中追加数据:append()

代码语言:javascript
复制
user.append(['金瓶儿', '合欢派']);
结果: [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门'], ['金瓶儿', '合欢派']]

列表中指定位置追加数据:insert()

代码语言:javascript
复制
user.insert(2, ['秦无炎', '万毒门']);
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['秦无炎', '万毒门'], ['陆雪琪', '青云门'], ['金瓶儿', '合欢派']]

删除列表末尾的元素:pop()

代码语言:javascript
复制
user.pop();
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['秦无炎', '万毒门'], ['陆雪琪', '青云门']]

删除列表中指定位置的元素:pop(index)

代码语言:javascript
复制
user.pop(2);
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]

将列表中指定位置的数据进行替换,直接给对应的索引赋值

代码语言:javascript
复制
user[2] = ['鬼先生', '鬼王宗']
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['鬼先生', '鬼王宗']]

至此,常见的列表操作就基本介绍结束了,后续更加细致的操作手段和方式,在项目中需要进行深入的时候和熟练了。

3.2.2. 元组

元组在python中,其实是列表的一种特殊的形式,一旦声明创建就不允许改变。 语法结构:使用一对圆括号包含起来的一组数据,可以存放重复数据

代码语言:javascript
复制
season = ('春' , '夏' , '秋' , '冬')

定义并给元组进行赋值之后,就可以像列表一样进行数据的查看了

代码语言:javascript
复制
season
结果: ('春' , '夏' , '秋' , '冬')
season[1]
结果:'夏'

由于元组的数据一旦定义就不可更改,在一定程度上提高了代码的安全性,所以在程序设计开发的过程中,对于一部分不需要更改的数据如果可以定义成元组的,就不要定义成列表了。

注意:元组中如果存放的是其他的内容可变的元素的话,一定要注意此时的元组中对象的数据是可变的。 如:

代码语言:javascript
复制
# 定义了一个元组,此时元组中出了存放字符串,还存放了一个列表
tuple = ('张小凡', '林惊羽', ['陆雪琪', '青云门'])
tuple[2][0] = '碧瑶'
tuple[2][1] = '鬼王宗'
tuple
结果:('张小凡', '林惊羽', ['碧瑶', '鬼王宗'])

执行过程如下图所示

元组中包含对象,修改对象数据的执行过程

3.2.3. 集合

python中,还提供了一种特殊的数据类型,集合Set,和列表类似,但是不能存储相同的数据;注意:集合set中存放数据是不能重复的,并且是没有存放顺序的,也就是没有下标的。

语法:使用一对大括号/花括号包含起来的一组数据

代码语言:javascript
复制
h = {'集合元素'}
hreo = set(['将列表转换成集合'])
代码语言:javascript
复制
heros = {'寒冰艾希', '皎月戴安娜', '钢铁波比', '雪人努努', '迷失纳尔'};
heros
结果:{'寒冰艾希', '皎月戴安娜', '钢铁波比', '雪人努努', '迷失纳尔'};
heros[3] # 错误,集合中没有下标,是无序存放数据的

集合中增加数据:add()

代码语言:javascript
复制
heros.add('青钢影卡密尔');
heros
结果:{'寒冰艾希', '皎月戴安娜', '钢铁波比', '雪人努努', '迷失纳尔', '青钢影卡密尔'};

集合中删除数据:remove()

代码语言:javascript
复制
heros.remove("皎月戴安娜");
heros
结果:{'寒冰艾希', '钢铁波比', '雪人努努', '迷失纳尔', '青钢影卡密尔'};
3.2.4. 字典

为了方便数据在组合数据类型中的管理,python 还提供了一种特殊存储数据的组合数据类型:字典。通过key-value键值对的形式来存储数据,可以很方便的通过key来对value进行增删改查的操作 语法结构:

代码语言:javascript
复制
# 定义一个字典,每一个数据都是成对出现的 key:value
heros = {"皎月女神":"戴安娜", "虚空遁地者":"雷克赛", "沙漠皇帝":"阿兹尔", "无双剑姬":"菲奥娜"}
# 通过字典的名称使用字典
heros
结果:{"皎月女神":"戴安娜", "虚空遁地者":"雷克赛", "沙漠皇帝":"阿兹尔", "无双剑姬":"菲奥娜"}
# 通过字典中数据的key来获取对应的value数据
heros['皎月女神']
结果:'戴安娜'

查询字典中的数据,使用方括号或者get()函数

代码语言:javascript
复制
# 使用方括号的形式查询数据
heros['皎月女神']
结果:'戴安娜'
# 使用get()函数查询数据
heros.get('皎月女神')
结果:'戴安娜'

修改字典中指定的数据,通过给指定的key直接赋值就可以修改

代码语言:javascript
复制
heros['沙漠皇帝'] = '兹尔大帝'
heros.get('沙漠皇帝')
结果:'兹尔大帝'

删除字典中的数据,通过删除指定的key对应的数据即可删除

代码语言:javascript
复制
heros.pop('沙漠皇帝')
heros
结果:{'皎月女神': '戴安娜', '虚空遁地者': '雷克赛', '无双剑姬': '菲奥娜'}

以上四种数据类型的比较 元组Tuple是存放固定的数据 集合Set中的数据插入和遍历的时间,随数据增多而变慢 列表List中的数据插入和查询的时间,随数据的增多而变慢 字典Dict中的数据插入和查询的速度非常快,不会因为数据太多而变慢

元组、集合和列表占用内存较少,字典占用内存较多,字典是一种通过占用空间来换取操作速度的一种数据类型

4种组合数据类型部分的基本使用讲解完成,下一章单独讲解变量和运算符的操作


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.2. 组合数据类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档