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

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

3.2. 组合数据类型

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

3.2.1. 列表

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

name = ['张小凡', '碧瑶', '陆雪琪', '林惊羽']

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

user = [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]

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

> user
 [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]
> user[1]
['碧瑶', '鬼王宗']
> user[1][0]
'碧瑶'

列表中追加数据:append()

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

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

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

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

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

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

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

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

user[2] = ['鬼先生', '鬼王宗']
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['鬼先生', '鬼王宗']]

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

3.2.2. 元组

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

season = ('春' , '夏' , '秋' , '冬')

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

season
结果: ('春' , '夏' , '秋' , '冬')
season[1]
结果:'夏'

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

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

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

执行过程如下图所示

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

3.2.3. 集合

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

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

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

集合中增加数据:add()

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

集合中删除数据:remove()

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

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

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

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

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

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

heros['沙漠皇帝'] = '兹尔大帝'
heros.get('沙漠皇帝')
结果:'兹尔大帝'

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

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

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

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

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


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Python yield 使用浅析

您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?

10910
来自专栏PHP实战技术

PHP面试常考易错题之变量作用域解析

PHP面试中变量作用域是面试中常常出现的问题,也是必考的问题,下面就给大姐讲解一下在面试中注意的点:

14440
来自专栏用户2442861的专栏

STL源码剖析-hash_map / hash_multimap

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

16740
来自专栏康怀帅的专栏

PHP 编码规范

PHP 编码规范。 关键字必须小写 true, false, null。 类 类的 属性 和 方法 必须添加访问修饰符(private、protected 以及...

31530
来自专栏老九学堂

这是谁做的作业!C语言编码太不规范了...

1) 程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶格书写;

18520
来自专栏desperate633

深入理解SortSet类型的使用及应用Redis 有序集合(sorted set)SortSet的应用场景SortSet的常用命令

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

40420
来自专栏北京马哥教育

Python工程师面试必备25条Python知识点

1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Pytho...

33260
来自专栏潇涧技术专栏

Python Basics

1.使用glob模块可以用通配符的方式搜索某个目录下的特定文件,返回结果是一个list

10720
来自专栏Python专栏

Python 面试问答 Top 25

Python 是一种解释型,交互式,面向对象的高级编程语言。和别的一些使用标点符号的语言不同,Python使用了大量的英语单词作为关键字,因而具有很好的可读性。...

13630
来自专栏iOS开发攻城狮的集散地

浅谈iOS内存管理机制

26890

扫码关注云+社区

领取腾讯云代金券