zoukankan      html  css  js  c++  java
  • python基础之数据类型(二)

    数据类型分类

      一:可变不可变
        可变:列表,字典
        不可变:数字,字符串,元组

      二:存放值的个数
        一个值:数字,字符串
        多个值(容器类型):列表,元组,字典

      三:取值方式
        直接取值:数字
        序列类型:字符串,元组,列表
        映射类型:字典

      可变或者不可变的定义:在id和type不变的情况下,值可变的数据是可变类型.id,type,value都不可变的是不可变类型

    一、列表

      特性:list中的元素可以随意删除增加且list的id和type不会改变,ist是一种可变类型.列表中的所有元素可以是 int 可以是 str 也可以是list(子列表).list中的值是有序的.

      定义列表:l=[11,22,33,44,55,66]
      取值:通过索引
        print(l[1])
      循环: 
    l=[1,2,3,[4,5]]
    c=len(l)
    for i in range(c):
        z=l[i]
        if type(z) is list:
        #z是列表,z=[4,5]
    for j in range(len(z)): print(z[j]) else:
        #z不是列表,直接打印
    print(z)
      列表的常用操作
      切片
      l=[11,22,33,44,55,66]
      print(l[1:5])
      追加
      l.append()     向后追加元素
      插入
      l.insert(1,‘SB’)          在指定索引的位置插入值
      删除
      l.pop()          移除最后一个值    a=.pop() 在原列表中移除掉最后一个元素并赋值给a
      显示索引位置
      l.index()     获取指定元素的索引位置
      包含
      print(11 in l)
      其他
      .count()     查看有元素出现的次数
      .extend()     批量添加元素
      .remove()     移除某个元素
      .reverse()     把所有元素顺序倒过来,反转
      .sort()     排序
      del 列表名[1]     删除索引指向的元素
       #字符串——>数字    int(字符串)

    二、元组      

      特性:元组内的所有元素不能更改,元素可以是任意数据类型

      元组中可以包含list,元组中的list中的元素是可以更改的.当然list中也可以有元组.

      定义元组

      name_tuple = ('alex','eric')
      索引
      print(name_tuple[0])
      len
      print(name_tuple[len(name_tuple)-1])
      切片
      print(name_tuple[0:1])
      for
      for i  in name_tuple:
           print(i)
      count:计算元素出现的个数
      print(name_tupel.count('alex'))
      index:获取指定元素的索引位置
      print(name_tupel.index('alex'))
     
     

    三、字典  

      {花括号}    dict          可变类型,key不可变,value可变
      字典定义的基本形式:key:value
      定义字典需要注意:key必须是不可变类型,或者说是可hash类型
      字典的取值,字典是无序的,不可用索引
      字典的取值需要打印key
    #字典的常用方法
    
    #定义字典
    d={'x':1,'y':12222}
    
    #长度
     len(d)
    
    #新增
     d['x']=2
     print(d)
    
    #遍历
    print(d.items())
     for item in d.items(): #[('x', 1), ('y', 12222)]
         print(item)         #以元组的形式取出键值对
     for k,v in d.items():   #解压键值对
         print(k,v)
     print(d.keys())              # 获取所有的key
     print(d.values())              # 获取所有的values
     print(d.itmes())          #获取所有的元素
    
    查找
     print(d.get('y'))
     print(d.get('y','找不到'))
     print(d.get('e','找不到'))
    
    删除键值对
     d.pop('x')
     print(d)
    
    随机删除键值对
     print(d.popitem())
     print(d)
    
    清除元素
     d.clear()
    print(d)
    
    #快速产生字典
     d1={}
     d2=dict()
     d3=dict(x=1,y=2,z=3)
     d4=dict({'x':1,'y':2,'z':3})
     d5=dict([('x',1),('y',2),('z',3)])
     d6={}.fromkeys(['name','age'],None) #把key的值都设置成None,用于创建初始的字典
     print(d1,d2,d3,d4,d5,d6)
    
    #更新字典元素,覆盖
     d={'name':'alex'}
     d1={'name':'alexsb','age':50}
     d.update(d1)
     print(d)
      d.clera()              #清楚所有内容
      get  根据key获取值,如果key不存在,可以指定一个默认值
      val = d.get('x')          #获取age的对应值
      val = d.get('age111','123')     #获取age111的对应值,如果没有,默认就把123定义为val的值
      索引取值时,key不存在报错
     
      print(‘age’in info)     #判断age是否存在于字典info
     
      del d[‘x’]     #删除字典里的指定元素
     
      enumerate自动生成一列,默认从0开始,可以添加数字指定

    四、集合

    集合作用一:关系运算
    集合作用二:去重
    #定义集合:
     #集合内的元素必须的唯一的
    #集合内的元素必须是可hash(不可变)的
    #集合是无序的
     s={'sam',123,'sam'}
    print(s,type(s))
    #循环
     s={'1',1,(1,2),'a'}
     for i in s:
         print(i)
    #关系运算
     python_l={'egon','alex','铁蛋','老王'}
     linux_l={'alex','铁蛋','矮跟','欧德博爱'}
     #取共同部分:交集
     print(python_l & linux_l)
    # #取老男孩所有报名学生:并集
     print(python_l | linux_l)
     #取只报名了python和只报名了linux的学生:差集
     print(python_l - linux_l)
     print(linux_l - python_l)
    # #取没有同时报名python和linux的学生:对称差集
     print(python_l ^ linux_l)
    
    #集合方法
     python_l={'egon','alex','铁蛋','老王'}
     linux_l={'alex','铁蛋','矮跟','欧德博爱'}
    
     print(python_l.difference(linux_l))#python -linux
     print(python_l.intersection(linux_l))#交集
     print(python_l.union(linux_l))#并集
     print(python_l.symmetric_difference(linux_l))#对称差集
    
     python_l={'egon','alex','铁蛋','老王'}
     linux_l={'alex','铁蛋','矮跟','欧德博爱'}
     python_l.difference_update(linux_l)
     print(python_l)  #对称差集并更新
    
     s1={'a',1}
     s2={'a','b',2}
    
     s1.update(s2)
     print(s1)               #把S2的内容更新到S1里
    
     s1={1,2}
     s2={1,2,3}
     print(s1.issubset(s2))#子集
     print(s2.issuperset(s1))#父集
    
     s1={'a',1}
     s1.add(1)
     print(s1)       #添加元素,元素存在不修改
    
     s1.discard('a')   #删除元素,元素不存在也不报错
     s1.discard('b')
     print(s1)
    
     s1.remove('nnnnnn')     #删除元素,元素不存在就报错
     print(s1)
    
     s1={'a',1,'b','c','d'}
     print(s1.pop())           #.pop随机删除
     print(s1)
    
     s1={1,2,'a'}
     s2={1,2,3}
    print(s1.intersection(s2))  #判断是否有交集,有则返回值
    print(s1.isdisjoint(s2))   #判断是否没有交集,有则返回False
    
     s1={'a','b'}
     s2={'c','d'}
     print(s1.isdisjoint(s2))    #没有交集返回True

     五、补充

      变量的组成:变量名,赋值符号,变量值

      在Python中数据又称为对象,每创建一个对象都会创建对象的id,type,值.

       比较方法:
      身份比较:is     比较的是变量值的id
      值比较:==      比较变量的值
      类型比较:type  比较变量的类型
      变量的赋值:
      链式赋值
      a=b=c=d=1
     
      多元赋值
        xy的值互换
        x = 1
        y = 2
        方法一:
        z = x
        x = y
        y = z
        方法二:
        python中: x,y=y,x
     
      增量赋值
        x=1
        x+=1
        x-=1
        x*=1
        x/=1
     
      解压序列类型:
        s = 'hello'
        a = s[0]
        b = s[1]
     
        a,b,c,d,e=s
        只打印出 对应的  a 和 e的值,使用'_'来填充中间的变量, '_'约定俗称代表丢弃的变量
        a,_,_,_,e = s
        a,*_,e    #使用*_ 代表中间全部
     
      
      
  • 相关阅读:
    html的URL参数传值问题
    html背景图片拉伸至全屏
    Laravel 用户验证Auth::attempt fail的问题
    HTML中meta的应用
    ubuntu升级php版本
    Laravel 目录结构分析
    css颜色渐变在不同浏览器的设置
    谷歌浏览器(Chrome)离线包的下载方法!
    RAD Studio 10 up1欢迎页证书不可用
    MySQL
  • 原文地址:https://www.cnblogs.com/78pikaqiu/p/6963381.html
Copyright © 2011-2022 走看看