python08_数据结构(容器类型)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python08_数据结构(容器类型)相关的知识,希望对你有一定的参考价值。

存储大量数据的容器在python中称之为内置数据结构

4种内置数据结构(容器类型):
1.列表:list => [val1,val2,val3,val4]
列表是处理一组有序项目的数据结构
可包含任何类型的对象
是可变的数据类型(即这种类型的值可被修改)

 列表的基本操作:
     索引:sample = [1,2,3,4]----下标不能越界
         切片:sample = [start:end:step]----三个值都为选填项
             切片对象(slice函数)---生成一个slice对象,相当于给要切的内容取个名
                 ![](https://s4.51cto.com/images/blog/202006/16/f5a1411c28bb629c2dae712c48d01433.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
         增加:
              append:在末尾作为整体追加,类型不限
                    insert:在index位置插入数据,2个参数(索引,插入的元素)
                    extend:扩展列表---将一个列表里的内容扩展到另一个列表(只限可转为list的类型---str,list,tuple)
                    如list1.extend(list2)即list2的内容在list1打印出来
         删除:
             pop:默认删除最后一个元素(指定index删除)
                 remove:指定删除的数据(要删除的数据不存在时会报错)
                 del:根据下标删除(del是python的一个关键字,用于删除变量的引用)
                 clear:清空列表
         修改:主要利用下标和切片来修改或增加,删除
         反转:reverse或切片
             区别:reverse会使list本身反转,切片只是结果反转
         排序:sort---(根据首字母排序,若第一位一样,则看第二位)
                   list.sort()----默认升序
             list.sort(reverse = True)-----降序
         统计:len,count,index
         遍历:依次取出对象中的每一项数据
             list是可迭代对象,可直接用for遍历
                 1)for i in list:
               print(i)
       2)for i,j//i in enumerate(list):
               print(i,j)//print(i)
         判断成员关系:判断列表中是否有某个数据
         类型转换:字符串str转列表list
         查下标

2.元组:tuple => (val1,val2,val3,val4)
元组是处理一组有序项目的数据结构
元组和字符串一样是不可变的
可以包含任何类型的对象

    元组的基本操作:
        索引
            切片
            不可变性:
            ![](https://s4.51cto.com/images/blog/202006/16/cb27efb3cc94d0b1657c5e9872d54e66.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
            ![](https://s4.51cto.com/images/blog/202006/16/e00c098051e9eb9d99a70396c96e95c8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
            统计
            查下标
            遍历
            成员关系

列表list和元组tuple的区别:
相同点:
序列的两个主要特点是索引操作符和切片操作符
索引操作符让我们可以从序列中抓取一个特定项目
切片操作符让我们能够获取序列的一个切片,即一部分序列
不同点:
list: 可变对象
tuple: 不可变对象,不能增加修改删除
tuple中嵌套list时,list是可修改的

3.字典:dict => {key1:val1,key2:val2}
字典是Python中一个键值映射的数据结构
无序的可变对象
key必须是唯一的可hash对象(python中所有字符串、数字、元组、布尔值、None都是可hash对象)
字典的value可以是任何值

    字典的基本操作:
        查看
            取值:
                1)dicts[key] = 当key不存在会报错
                    2)dicts.get(key,default) = 当key不存在时返回default值
            新增:
                dicts[key] = value---当key不存在时,表示增加一个键值对///当key存在时,表示修改对应的value值
            删除:
                1)dicts.pop(key)
                    2)dicts.popitem()---默认删除最后一对键值对
            遍历
            合并字典:
                1)dict1.update(dict2) =   将dict2合并到dict1
                2)dict(dict1, **dict2) =  将dict1与dict2合并生成一个新字典

            统计长度
            成员关系:
                item in dicts
                    item not in dicts

4.集合:set => {key1,key2,key3,key4}
集合是一个无序的,不重复的数据组合
是一个只含有key的字典
集合的作用:
去重:把一个列表变成集合,就自动去重了
关系测试:测试两组数据之前的交集、差集、并集等关系

    集合元素必须是可hash对象,跟字典一样
    set和dict的唯一区别仅在于没有存储对应的value

    集合的基本操作:
        添加:
                1)s.add(item) => 添加一项
                    2)s.update(someitems) => 添加多项
            移除:
                1)s.remove(item) => 移除一项(item不存在会报错)
                    2)s.discard(item) => 移除一项(item不存在则什么也不做)
            集合操作:
                创建集合
                    交集:t 和 s的交集 , 返回一个新的 set 包含 s 和 t 中的公共元素
                    并集:t 和 s的并集 ,返回一个新的 set 包含 s 和 t 中的每一个元素
                    ![](https://s4.51cto.com/images/blog/202006/16/fc29a261bd3e63f9bca51b082fc555ef.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
                    差集:返回一个新的 set 包含 s 中有但是 t 中没有的元素
                    对称差集:返回一个新的 set 包含 s 和 t 中不重复的元素(在t或s中,但不会同时出现在二者中)
                    ![](https://s4.51cto.com/images/blog/202006/16/26dc4f149cb342f3e5ab2e84803c478e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

以上是关于python08_数据结构(容器类型)的主要内容,如果未能解决你的问题,请参考以下文章

Python基础12_Python中的容器类型公共方法

尝试将片段添加到我的片段容器 FrameLayout

尝试将片段添加到我的片段容器 FrameLayout

13 个非常有用的 Python 代码片段

python容器类型的协议

python的容器类型