zoukankan      html  css  js  c++  java
  • day06

    元组类型

    一  定义:参数为for循环的对象(可迭代对象)

    t2=tuple('123')             
    print(t2,type(t2)) ('1', '2', '3') <class 'tuple'>
    t3=tuple([1,2,3])
    print(t3,type(t3)) (1, 2, 3) <class 'tuple'>
    t4=tuple((7,8,9))
    print(t4,type(t4)) (7, 8, 9) <class 'tuple'>

         思考:如何定义只有一个值的元组     

         print(('owen',))     只有一个值的时候,一定要加逗号

    二、常用操作

    1、元组是有序存储,按索引取值

    t=(1,2,3)
    print(t[1]) 2
    print(t[-2]) 2

    2、切片

    t=(1,2,3)
    print(id(t)) 2451016414120
    nt=t[:-1:]
    print(nt,id(nt)) (1, 2) 2451016592968

    3、长度(item的个数)

    t=(1,2,3,4,5,6)
    print(len(t)) 6

    三、元组的内置方法(该数据集合可以存放相同的数据)

    1、count:元组中某个元素的个数

    t=(1,2,3,2,3,1,4)
    print(t.count(2)) 2

    2、index(value,start=None,stop=None)  后面两个参数可以省略

    t=(1,2,3,2,3,3,4,5,2,4,3)
    print(t.index(2)) 1
    print(t.index(3,2)) 2
    print(t.index(2,2,5)) 3

    案例一:提前拥有一个老师列表,打算开除,如果是校长亲友团,则免开。原始列表为list类型,手动输入是否是亲友团,决定是否能开除

    teas=['bob','alex']
    friends=input('亲友团[0,1]: ')
    if friends=='1': #判断teas对象是否是tuple类型
    teas=tuple(teas)
    if not isinstance(teas,tuple): #老师是否是亲友团,不是就开除
    teas.clear()
    for i in teas:
    print('在职老师:%s'%i)

    案例二:元组中的数据一定不能改变,但元组中的数据(可变类型)的数据是可以改变的              

    t1=(1,2,'abc',tuple,True,(1,2))
    t2=(1,2,[])
    print(t2,type(t2),id(t2),id(t2[2])) (1, 2, []) <class 'tuple'> 1475809342448 1475808092808
    t2[2].extend((10,20))
    print(t2,type(t2),id(t2),id(t2[2])) (1, 2, [10, 20]) <class 'tuple'> 1475809342448 1475808092808

    总结:t1=(1,2)

               t2=tuple((1,2))

               t3=(1,)

               索引、切片、长度

               count(obj)、index(obj,bindex,eindex)

               有序存储,存多个值,不可变(内部存可变类型,可变类型内数据可变)

    字典

    一、声明

    dict的key可以为所有不可变类型:int,float,tuple,str,bool,None,一般就采用字符串

    dict的value可以为所有数据类型

    注:key具有唯一性(重复会覆盖旧值),value可以重复

    dic={10:None,None:None,3.14:None,True:None,'abc':None,(1,):None,None:12345}
    print(dic) {10: None, None: 12345, 3.14: None, True: None, 'abc': None, (1,): None}
    d1={'name':'owen','age':18}
    print(d1) {'name': 'owen', 'age': 18}
    d2=dict({'name':'owen','age':18})
    print(d2) {'name': 'owen', 'age': 18}
    d3=dict(name='egon',age=18)
    print(d3) {'name': 'egon', 'age': 18}

    字典无序存储数据,无索引与切片,用key来取值

    二、增删改查

    增:key不存在,会把新的key加入到原字典中

    dic={}
    dic['name']='mac'
    print(dic) {'name': 'mac'}
    update 添加的参数字典与dic可以重复,就是更新值,新的key就是新增

    改:key已存在

    dic['name']='big mac'
    print(dic) {'name': 'big mac'}

    查:

    print(dic['name'])               big mac

    删:

    del dic['name']
    print(dic) {}
    pop 根据key删除指定对象,并返回删除对象的value

    三、get取值   .get(key)

         取的是key,如果key不存在不会报错,拥有默认值None,也可以自定义默认值

    四、如何定义空字典

    {}.fromkeys(['a','b','c'])

    第一个参数:keys:list/tuple

    第二个参数:统一的默认value

    append:如果有,在原key基础上添加新值,如果没有新建一个空key
    setdefult:如果有,setdefult相当于什么都没有做,如果没有,就将第二个参数(默认值)传给该key,存放到原字典中

    五、字典的循环(迭代)

    直接for循环(遍历)字典得到的是key

        values只循环值

        keys循环key

        items  存档key-value的键值对

    集合set

    1.定义与声明

    什么是集合:

    1)单列数据集合:str,list,tuple,set

         双列:dict

    2)无序存储:无key无index,无法取值

    3)可变数据类型,内部可以存放任意数据类型,但数据具有唯一性

    2、内置方法与使用----集合间的运算(&|^><==)
    交集、并集、差集、对称差集

    添加删除操作:

    add  添加

    pop  删除    随机删除一个元素

  • 相关阅读:
    canvas实现涂鸦板
    走进javascript——被忽视的DOM方法和属性
    走进javascript——DOM事件
    HTML5本地储存sessionStorage的销毁数据问题
    给微软的依赖注入框架写一些扩展方法
    一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
    用 C# 写一个 Redis 数据同步小工具
    SqlServer 利用游标批量更新数据
    WeihanLi.Npoi 根据模板导出Excel
    angular 构建可以动态挂载的配置服务
  • 原文地址:https://www.cnblogs.com/yangyinyin/p/10597823.html
Copyright © 2011-2022 走看看