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

作者: 大牧莫邪 | 来源:发表于2017-05-15 17:56 被阅读85次

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

    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种组合数据类型部分的基本使用讲解完成,下一章单独讲解变量和运算符的操作


    大牧莫邪.png

    相关文章

      网友评论

        本文标题:09.程序编程基础3~组合数据类型

        本文链接:https://www.haomeiwen.com/subject/nfwhxxtx.html