zoukankan      html  css  js  c++  java
  • Day——06

    元组
    # 一 定义
    t1 = ()
    print(t1,type(t1))
    # 参数为for可以循坏的对象(可迭代对象)
    t2 = tuple('123')
    print(t2,type(t2))
    t3 = tuple([1,2,3])
    print(t3,type(t3))
    t4 = tuple((7,8,9))
    print(t4,type(t4))

    思考:如何定义一个只有一个值的元组
    print('Owen',)
    print(tuple(['Owen']))

    总结:
    t = (1,2,3) # 多个元组
    t = (1 ,) # 单个元组 加逗号

    常用操作
    元组有序存储
    索引取值
    t = (1,2,3)
    print(t[1])
    print(t[-1])
    切片
    new_t = t[:-1: ]
    print(new_t,id(new_t ))
    长度(item元素个数)
    print(len(t))
    元组内置方法
    t = (1,2,4,2,3,2,1)
    print(t.count(2)) # 该数据类型集合可以存放相同数据
    print(t.index(2,1,6))

    案例 1
    提前拥有一个老师列表,打算开除,如果是校长亲友团,免开
    原始列表为list类型
    手动输入是否是亲友团,决定是否能开除
    teas = ['Bob','Alex']
    friends = input('亲友团[0,1]:')
    if friends == '1':
    teas = tuple(teas)
    异常处理
    判断teas对象是否是tuple类型
    if not isinstance(teas,tuple): # 老师是否是亲友团,不是就开除
    teas.clear()
    for t in teas:
    print( '在职老师:%s'% t)



    案例二 元组中的数据一定不能改变吗:一定不能改变,元组中的数据(可变类型)的数据可以改变
    t1 = (1,2,'abc',True,(1,2)) #t1永远无法改变
    t2 = (1,2,[])
    print(t2,type(t2),id(t2[2]))
    t2[2].extend((10,20))
    print(t2,type(t2),id(t2[2]))


    字典: 字典是python中仅存的mapping类型
    声明:
    dict的key:可以为所有不可变类型:int float tuple str bool None,一般就采用字符串
    dict的value:可以为所有数据类型
    注:key具有唯一性(重复会覆盖旧值),value可以重复
    dic = {1:None,None:None,3.14:None,
    True:None,'abc':None,(1,):None,
    None:12345
    }
    print(dic)
    #1
    d1 = {'name':'Owen','age':18}
    print(d1)
    #2
    d2 = dict({'name':'Owen','age':18})
    print(d2)
    d3 = dict(name='Egon',age=58)
    print(d3)

    字典无需存储数据,无索引与切片,用key来取值
    增删改查
    dic = {}
    # 增:key不存在
    dic['name'] = 'Mac'
    print(dic)
    #改:key已存在
    dic['name'] = 'Big Mac'
    print(dic)
    # 查
    print(dic['name'])
    # 删
    del dic['name']
    print(dic)

    三,get取值
    dic = {'a':10,'b':20}
    print(dic['a'])
    res = dic.get('c') #拥有默认值,None,可以避免错误
    print(res)
    res = dic.get('d','key不存在') #可以自定义默认值 ******
    print(res)

    # 增
    dic.update({'a':100,'c':300}) # 添加的参数字典,与dic可以重复,有的覆盖,没有的添加
    print(dic)
    # 删
    res = dic.pop('c') #根据key删除指定对象,并返回删除的对象的value
    print(res)

    随机删除,返回值是key(key,value)
    print(dic)
    print(dic.popitem())
    print(dic.popitem())
    print(dic)

    # 如何定义一个空字典
    #第一个参数:keys:list|tuple|str,第二个参数。统一的默认value
    d10 = {}.fromkeys(['a','b','c'],'')
    print(d10)

    独自设置默认值
    d11 = {'a':10,'teas':['Owen']}
    d11 = {'a':10}
    # 添加老师
    if 'teas' not in d11:
    d11['teas'] = []
    d11['teas'].append('Egon')
    d11['teas'].append('LinXX')
    print(d11)

    set 集合
    定义与声明
    什么是set:
    1 单列数据集合:str,list,tuple,set 双列:dict
    2 无须存储:无key无index,无法取值
    3 可变数据类型,内部可以存放任意类数据,但数据具有唯一性 *****
    声明
    {} 代表空字典,用set来创建空集合
    s1 = set()
    print(s1,type(s1))
    s2 = set('abc')
    print(s2,type(s2))
    内置方法与使用-集合间的运算 & | ^ - > < ==
    p_set = {'a','b','c','egon'}
    l_set = {'x','y','z','egon'}
    print(p_set)
    print(l_set)

    交集 &
    res = (p_set & l_set)
    print(res)
    并集 | 去重
    res = (p_set | l_set)
    print(res)
    差集 ^ 左减右
    res = (p_set - l_set)
    print(res)
    res = (l_set - p_set)
    print(res)
    对称差集 ^
    res = (p_set ^ l_set)
    print(res)

    print(p_set)
    print(l_set)
    # p_set.difference_update(l_set) # 将运算结果赋值给调用者
    # 上等于下
    p_set = p_set - l_set
    print(p_set)
    print(l_set)


    添加或删除操作
    s = set()
    s.add('abc')
    s.add('xyz')
    print(s)
    res = s.pop() # 随机删除一个元素
    print(res)
    # if 'xyz' in s:
    # s.remove('xyz') # 有ele删除,无ele抛异常

    选课
    class_map = [
    ('owen','python'),
    ('egon','linue'),
    ('egon','python'),
    ('liuxx','python'),
    ('liuxx','java'),
    ]
    需求:
    1.多少人参加了选课:['owen','egon','liuxx']
    2.都选了那些课程:['python','linue','java']
    利用逻辑代码去重
    names = []
    for name,_ in class_map:
    # 判断列表中是否已存在,不存在才添加
    if name not in names:
    names.append(name)
    print(names)
    利用set去重 一pp般不用 记住上面的逻辑代码去重
    classes = set()
    for _,cless in class_map:
    classes.add(cless)
    classes = list(classes)
    print(classes)
  • 相关阅读:
    焦虑来回走
    去省政府客串
    中国地质大学(北京)招生信息有点坑
    张桂梅校长再获殊荣,实至名归!她的故事值得一看再看……
    行内容转为列内容
    公文写作心得
    钟南山院士亲口说的“如何保持健康长寿
    VMware虚拟机出现“内部错误”如何解决?
    CI框架深入篇(2)一些基础的我之不知道的标准格式
    SQL语句学习记录(三)
  • 原文地址:https://www.cnblogs.com/xuzhaolong/p/10599937.html
Copyright © 2011-2022 走看看