zoukankan      html  css  js  c++  java
  • Python3中列表、字典、元组、集合的看法

    文首,我先强调一下我是一个弱鸡码农,这个随笔是在我学习完Python3中的元组、字典、列表,集合这四种常见数据的数据类型的一些感想,如果有什么不对的地方欢迎大家予以指正。谢谢大家啦

    回归正题:这篇随笔讨论的是列表、字典、元组、集合。因此首先对着三种数据类型进行简要的分析是很有必要的:

      1 :列表

        列表的特点是以“[ ]” (后面称之为中括号)为主要特点的数据类型。学过其他语言的小伙伴第一反应就是,这不就是一个数组么,确实我个人感觉和数组十分的相似,不过有一下不同:

         a.在c++/java中数组中存放的类型是固定的,但是在python3中,列表存放的数据类型是可以不一致的。

          例如(以java为例子):

              int [] arr=new int[10]

              在arr数组中存放的数据类型智能是int类型的,并且数组长度是固定的长度(10)

         b.在java中数组长度必须申明好,你得告诉jvm你需要多大的数据空间,对应jvm会在堆里面给你开辟对应大小的存储空间,但是列表则是不会限定大小(这点有点和java的list类似)

        主要不同点在于此两点,聪明的小伙伴会说,那这个列表是不是就是和java的list是一样的??回答是不是,因为虽然功能相似(真的很像)但是中括号这样方式显然不是一个List。但是功能却和List极其相似宁。列表是一个可迭代的对象但却不是一个迭代器对象。同时列表是可以动态的修改原来列表中的属性

        接着,因为列表的可变性,所以列表有一系列的BIF(内置函数)对列表进行更加便捷的操作:

        append() 向列表中添加一个元素 

        count()  查询列表中某个元素出现的次数

        insert()  insert函数一共有两个参数,一个是下表一个是元素。意思为在某处插入某个元素

        reverse() 将列表到倒转

        clear() 删除列表中的某个元素,注意,如果元素没有的话就会报错(java里面理解应该是runtimeexception)

        extend()  将两个列表连接起来

        pop()    将最顶端的值弹出

        sort()   将列表进行排序

        copy()    拷贝列表(此时位深拷贝) 

                  

        index()查找某个元素所在的位置如果该元素不存在会报错

      2.字典(DIctionary)注意:在传递参数用(**arg)用来保存字典

        通过对比学习,有过java学习经验的同学可以将字典类比成java中的Map。他的表达形式是:{ key:value , }注意key与value的中间需要用:而不是,如果换成,那么就会变成了一个集合。与Map类似,字典的Key字段是不能够重复的,因此可以理解是Key实现了Set接口,而Value实现了List接口。

        其内置BIF有:

          1.clear()---- 清楚列表中的所有值

          2.keys() ----- 获取构造函数(dict())下的所有的key

          3.values()。----- 获取构造函数(dict())下的所有的Values

           ....etc.

        注意:空字典用{}来创建    

      3.元组(Tuple)注意,在函数传递参数时候用(*arg)来接受任意长度与个数的参数,并用元组保存

        tuple的功能与list(列表)类似,它也是一个可迭代的数据类型.与list不相同的地方就是tuple是一个不可变类型。就是说一旦创建在内存中的地址就确定好了,并且里面的元素是也是伴随着创建而固定。因而tuple没有BIF对其数据进行修改。

        特点:以()为特点,注意是要包含, ,单个()并不是元素的特征。tuple可以被索引和切片,注意如果被索引或者切片是生成了一个新的tuple。 

            

      4.集合 (Set)

        表示一个无序不重复的序列。注意创建一个空集合可以使用{}或者set()

        集合可以用来求并交补和抑或(得出的结果依旧是Set):

          1.并  |  

          2.交 &

          3.补 -

          4.抑或 ^           

              

    5.互相转换

      截图来源 https://www.cnblogs.com/cisum/p/8064145.html

     

  • 相关阅读:
    python
    python
    selenium
    性能测试分类
    大型网站架构演化(总)
    网站性能测试的方法
    大型网站架构演化(十)——分布式服务
    大型网站架构演化(九)——业务拆分
    大型网站架构演化(八)——使用NoSQL和搜索引擎
    大型网站架构演化(七)——使用分布式文件系统和分布式数据库系统
  • 原文地址:https://www.cnblogs.com/gclokok/p/8978184.html
Copyright © 2011-2022 走看看