zoukankan      html  css  js  c++  java
  • Python课程回顾(day06)

    数据类型的补充

    一、元组(tuple):元组跟列表唯一不一样的就是元组是一个不可变的列表,用于记录只有读的需求而没有取的需求的多个值,定义方式是在小括号内用逗号分隔开来的多个任意类型的值。

    元组与列表的内置方法基本等同于列表,例如len(长度),成员运算(in/not in),循环,切片等等,它也可以按照索引取值,所以它也是有序的

    总结来说tuple的类型是可以存放多个值且不可变而有序的的类型。

    二、字典(dict):字典是用来记录多个不同种类的值,定义方式是在花括号内使用键值对(key:value)用逗号分割开的多个不同种类的值。

    key的功能通常是用于对value的描述的,key通常是字符串类型,但其实key其实是不可变类型。

    字典常用的操作及内置方法:

    1:取值,字典取值的方式是按key取值,可存可取。字典与可以使用get方法取值

    d={'x':1}
    print(d['x'])    通过key取值
    print(id(d))     查看id
    d['x']=1111      改变key的值
    print(d)         
    print(id(d))     改变后的值与改变之前的值的内存地址是一样的
    d['y']=2222      可以直接添加新的key
    print(d)        

    d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
    v=d.get('namexxxxxxx') 此处get要取得key不存在字典内,但不会报错,会返回None
    print(v) 若直接根据字典的key取字典内不存在的值,则会报错!

    2:长度,字典的长度是按照key来计算的,有多少个key长度就为几。

    d={'x':1,'y':2,'z':3}
    print(len(d))

    3

    3.成员运算in、not in:字典中的成员运算只能判断key是否存在在通过key去判断值,不可以直接判断key后面的值存不存在。

    d={'x':1,'y':2,'z':3}
    print(1 in d)

    False

    4.删除:字典中除了del只能使用pop与popitem删除,使用pop删除key会返回key在当前列表所对应的值。popitem删除是随机删除,但会返回key与key对应的值。

    d={'x':1,'y':2,'z':3}
    
    res=d.pop('y')
    print(d)
    print(res)
    
    {'x': 1, 'z': 3}
    2
    
    res=d.popitem()
    print(res)
    
    ('z', 3)
    

    5.键keys.(),值values.(),键值对items.():

    d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
    
    print(list(d.keys()))    使用列表类型打印出字典d里的所有key
    
    print(list(d.values()))  使用列表类型打印出字典d里的所有value
    print(list(d.items())    使用列表类型打印出字典d里的所有(key,value)

    6.循环

    for k in d.keys():
        print(k)           使用for循环将字典d里的keys全部取出
    for k in d:            此处不加任何后缀默认取出全部的key
        print(k)           
    for v in d.values(): 
    print(v) 使用for循环将字典d里的value全部取出

    for k,v in d.items():
    print(k,v) 使用for循环将字典d里的所有键值对全部取出(key,value)

    7.update、setdefault添加

    d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
    字典默认的添加操作方式:
    d['x']='1111' 若有X则覆盖,若没有则添加

    d.update({'x':1,'name':"EGON"}) update可以更新字典覆盖原来的value值,也可添加多个新的key:value值 print(d) d.update({ })

    setdefault
    d={"x":1,"y":2}
    res=d.setdefault('x',11111) 在key存在的情况下不修改值,会返回原值
    print(d)
    print(res) res=1

    8.fromkeys:需要是快速制造出一个新的列表,value的初始值全部为None,而key则是来源于列表。

    keys=['name','age','sex']
    d={}
    for k in keys:               使用for循环制造新的字典
        d[k]=None
    
    d={}.fromkeys(keys,None)     使用fromkeys制造新字典  fromkeys后的参数只需填key的来源变量名即可 value默认为None
    print(d)                         {}.fromkeys(列表,None)
    

    三、集合

    定义方式:在花括号内用逗号分隔开的多个值

    特点:1.每个值必须是不可改变类型

       2.集合是无序的

       3.集合内的元素不能重复

    集合的作用:

    集合的主要作用是关系运算以及去重

    使用方法:

    1.集合内不能有列表(可变)等其他可变类型的值

    2.集合内会将重复的值去掉直至剩余一个(字典会将相同的key后的值按照最后一个key作为反馈值)

    3.集合将列表转换成集合时若列表内含有子列表,子列表放不进去的。会报错

    一、关系运算

    pythons={'egon','张铁蛋','李铜蛋','赵银弹','王金蛋','艾里克斯'}
    linuxs={'欧德博爱','李铜蛋','艾里克斯','lsb','ysb','wsb'}
    
    
    Pythons & Linuxs
    将两个集合内相同的值取出(&)
    Pythons | Linuxs
    将两个集合内所有值取出(|)   :会去重
    Pythons - Linuxs
    将只在减号之前的集合内出现的值取出(-)   减号之后集合内也同样出现的值不包含在内  
    Pythons ^ Linuxs
    将只在第一个集合内及只在第二个集合内出现的值取出(^)   两个集合内都出现的值不包含在内
    

    二、父子集:即包含与被包含的关系

    s1={1,2,3}
    s2={1,2}
    print(s1 >= s2)    s2内的值在s1中也有且s1中的值比s2要更加多   即s1 > s2
    print(s1.issuperset(s2)) superset为父集,后边括号内的元素为要比较的子集 print(s2.issubset(s1)) subset为子集,后边括号内的元素为要比较的父集

    s1={1,2,3}
    s2={3,2,1}
    print(s1 == s2) 两个集合相等(因为是无序)的话,s1与s2是相互父子集

    三、去重:集合去重是有局限性的,一会打乱原值的顺序,二只能针对不可变的值去重。

    stus=['egon','lxx','lxx','alex','alex','yxx']
    new_l=list(set(stus))     使用列表将去重后的结果让入列表        
    print(new_l)
    

    四、添加,删除

    s1={1,2,3}
    s1.update({3,4,5})     会在更新集合过程中再次去重
    print(s1)
    print(s1.pop())        弹出也是随机弹出
    print(s1)
    s1.remove(2)           remove删除
    print(s1)

    s1.discard(4) 若删除集合内不存在的值,discard不会报错且会反馈集合的原值 remove若同样操作则会报错
    s1.add(4)              add是独有添加功能   可以添加单个值
    print(s1)

    五、判断是否有交集

    s1={1,2,3}
    s2={4,5}
    print(s1.isdisjoint(s2))       isdisjoint是判断两个集合是否完全没有交集
    

    总结:

    可存多个值,是无序的

    是可变不可hash类型的

  • 相关阅读:
    161012、JAVA读写文件,如何避免中文乱码
    161011、oracle批量插入数据
    161010、在大型项目中组织CSS
    160930、Javascript的垃圾回收机制与内存管理
    160929、各数据库连接配置与maven依赖安装
    Selenium学习(8) Cookie处理
    Selenium学习(7) 文件上传
    Selenium学习(6) 控制浏览器操作
    Selenium学习(5) 元素等待
    Selenium学习(4) 键盘操作
  • 原文地址:https://www.cnblogs.com/lefy11-/p/9672021.html
Copyright © 2011-2022 走看看