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)
  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/xuzhaolong/p/10599937.html
Copyright © 2011-2022 走看看