zoukankan      html  css  js  c++  java
  • day005|python基础回顾5

    字典类型常用操作及内置方法

    1、作用:存多个值,key-value存取,存取速度快

    2、定义:在{}内用逗号分隔开多个key:value,key必须是不可变类型,通常是字符串类型,value可以是任意类型

    info = {'name': 'egon', 'age': 18, 'gender': 'male'} # 本质info=dict({...})

    key不能重复,重复只会显示最后一个赋的值

    3、数据类型转换

    ​ info = dict(name='egon', age=18, gender='male')

    ​ info = dict([['name', 'egon'], ('gender', 18)])

    ​ res = {}.fromkeys(('name', 'age', 'gender'), None)

    ​ print(res)

    l = {}

    print(l, type(l)) # 空花括号是字典

    # ========================优先掌握的常用操作+内置方法===========
    # 1、按key存取值:可存可取
    # d = {"k1": 111, "k2": 222, "k3": 333}
    # d["k1"] = 666
    # print(d)              # {'k1': 666, 'k2': 222, 'k3': 333}
    # d["k4"] = 999
    # print(d)              # {'k1': 111, 'k2': 222, 'k3': 333, 'k4': 999}
    
    # 2、长度len
    # d = {"k1": 111, "k2": 222, "k3": 333}
    # print(len(d))         # 3
    
    # 3、成员运算in和not in
    # 字典依据key运算
    # d = {"k1": 111, "k2": 222, "k3": 333}
    # print('k1' in d)      #True
    # print(111 in d)       # False
    
    # 4、删除
    # d = {"k1": 111, "k2": 222, "k3": 333}
    # 方式一
    # del d['k1']
    # print(d)              # {'k2': 222, 'k3': 333}
    # 方式二
    # res = d.pop('k1')
    # print(res)            # 111 有返回值(随机删)
    # print(d)              # {'k2': 222, 'k3': 333}
    
    # 5、键keys(),值values(),键值对items()
    # d = {"k1": 111, "k2": 222, "k3": 333}
    # 在python2中
    # >>> d = {"k1": 111, "k2": 222, "k3": 333}
    # >>> d.keys(),type(d.keys())
    # (['k3', 'k2', 'k1'], <type 'list'>)
    # >>> d.values(),type(d.values())
    # ([333, 222, 111], <type 'list'>)
    # >>> d.items(), type(d.items())
    # ([('k3', 333), ('k2', 222), ('k1', 111)], <type 'list'>)
    
    # 在python3中
    # print(d.keys(), type(d.keys()))         # dict_keys(['k1', 'k2', 'k3']) <class 'dict_keys'>
    # print(d.values(), type(d.values()))     # dict_values([111, 222, 333]) <class 'dict_values'>
    # print(d.items(), type(d.items()))       # ('k2', 222), ('k3', 333)]) <class 'dict_items'>
    
    # 6、循环
    # 只取key
    # for i in d.keys():
    #     print(i)
    # 只取value
    # for i in d.values():
    #     print(i)
    # value与key对应
    # 方法一
    # for i in d:
    #     print(i, d[i])
    # 方法二
    # for x, y in d.items():
    #     print(x, y)
    
    # ========================需要掌握的常用操作+内置方法===========
    # d = {"k1": 111, "k2": 222, "k3": 333}
    # dic = d.copy()
    # print(dic)          # {'k1': 111, 'k2': 222, 'k3': 333}
    
    # d.update({'k3': 4646, 'k4': 6666})
    # print(d)            # {'k1': 111, 'k2': 222, 'k3': 4646, 'k4': 6666}
    
    # res = d.popitem()   # 删除最后一个值,LIFO后进先出
    # print(res)          # ('k3', 333)
    # print(d)            # {'k1': 111, 'k2': 222}
    
    # d = {"k2": 222, "k3": 333}
    # if 'k1' not in d:
    #     d['k1'] = 66666666666
    # res = d.setdefault('k1', 6666666666)    # 两者都可以达成
    # print(res)      # 66666666666 k1不存在的情况下添加
    # print(d)        # {'k2': 222, 'k3': 333, 'k1': 66666666666}
    
    
    # ==========================总结
    # 可以存多个值
    # 无序
    # 可变
    # d = {"k1": 1111}
    # print(id(d))          # 1844777596544
    # d['k1'] = 2222
    # print(id(d))          # 1844777596544
    
    
    # =======================练习1
    # # 有如下值集合 [11,22,33,44,55,66,77,88,99,90]
    # # 将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
    # # 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
    # nums = [11, 22, 33, 44, 55, 66, 77, 88, 99]
    # d = {'k1': [], 'k2': []}
    # for num in nums:
    #     if num > 66:
    #         d['k1'].append(num)
    #     else:
    #         d['k2'].append(num)
    # print(d)                # {'k1': [77, 88, 99], 'k2': [11, 22, 33, 44, 55, 66]}
    
    # =======================练习2
    # 统计s='hello alex alex say hello sb sb'中每个单词的个数
    # 结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
    # s = 'hello alex alex say hello sb sb'
    # words = s.split()
    # d = {}
    # for x in words:
    #     if x not in d:
    #         d[x] = 1
    #     else:
    #         d[x] += 1
    # print(d)                # {'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
    

    集合常用操作及内置方法

    1、作用:去重,关系运算

    2、回顾:可变类型是不可hash类型,不可变类型是可hash类型

    3、定义方式:在{}内用逗号分隔开多个不可变类型

    3.1 集合:可以包含多个元素,用逗号分割

    3.2 原则:

    ​ Ⅰ 每个元素必须是不可变类型(可hash,可作为字典的key)

    ​ Ⅱ 集合内元素唯一

    ​ Ⅲ 集合内元素无序

    ​ 集合的目的不是将不同的值存放到一起

    ​ 不同的集合间用来做关系运算,无需纠结于集合中单个值

    s = {111, 111, 3.3, "aaa", 3.3, (111, 222)} # s = set(...)

    print(s) # {(111, 222), 3.3, 'aaa', 111}

    4、数据类型转换

    res = set("hello")

    print(res, type(res)) # {'h', 'e', 'l', 'o'} <class 'set'>

    # # ==========================练习1
    # # 有如下列表,列表元素为不可hash类型,去重,得到新列表,
    # # 且新列表一定要保持列表原来的顺序
    # # l=[
    # #     {'name':'egon','age':18,'sex':'male'},
    # #     {'name':'alex','age':73,'sex':'male'},
    # #     {'name':'egon','age':20,'sex':'female'},
    # #     {'name':'egon','age':18,'sex':'male'},
    # #     {'name':'egon','age':18,'sex':'male'},
    # # ]
    # l = [
    #     {'name': 'egon', 'age': 18, 'sex': 'male'},
    #     {'name': 'alex', 'age': 73, 'sex': 'male'},
    #     {'name': 'tony', 'age': 20, 'sex': 'female'},
    #     {'name': 'egon', 'age': 18, 'sex': 'male'},
    #     {'name': 'egon', 'age': 18, 'sex': 'male'},
    # ]
    # res = []
    # for item in l:
    #     if item not in res:
    #         res.append(item)
    # print(res)
    # # [{'name': 'egon', 'age': 18, 'sex': 'male'},
    # # {'name': 'alex', 'age': 73, 'sex': 'male'},
    # # {'name': 'tony', 'age': 20, 'sex': 'female'}]  # 同一行
    
    # 优先掌握的操作:
    # 1、长度len
    # s = {111, 222, 333}
    # print(len(s))           # 3
    
    # 2、成员运算in和not in
    # s = {111, 222, 333}
    # print(111 in s)         # True
    # print(11 not in s)      # True
    
    
    # =====================关系运算
    # pythons = {'alex', 'egon', 'yuanhao', 'wupeiqi', 'gangdan', 'biubiu'}
    # linuxs = {'wupeiqi', 'oldboy', 'gangdan'}
    # 3、|合集
    # print(pythons | linuxs)               # 方法一
    # print(pythons.union(linuxs))          # 方法二
    # # {'yuanhao', 'egon', 'wupeiqi', 'gangdan', 'biubiu', 'oldboy', 'alex'}
    
    # 4、&交集:共同部分
    # print(pythons & linuxs)               # 方法一
    # print(pythons.intersection(linuxs))   # 方法二
    # # {'gangdan', 'wupeiqi'}
    #
    # # 将交集更新给pythons
    # pythons = pythons & linuxs            # 方法一
    # pythons.intersection_update(linuxs)   # 方法二
    # print(pythons)
    # # {'wupeiqi', 'gangdan'}
    
    # 5、-差集
    # # pythons有而linuxs没有
    # print(pythons - linuxs)               # 方法一
    # print(pythons.difference(linuxs))     # 方法二
    # # {'alex', 'biubiu', 'yuanhao', 'egon'}
    #
    # # linuxs有而pythons没有
    # print(linuxs - pythons)               # 方法一
    # print(linuxs.difference(pythons))     # 方法二
    # # {'oldboy'}
    
    # 6、^对称差集:取出pythons有或linuxs有的
    # res = pythons ^ linuxs                            # 方法一
    # print(res)
    # res = pythons.symmetric_difference(linuxs)        # 方法二
    # print(res)
    # res = (pythons - linuxs) | (linuxs - pythons)     # 繁琐
    # print(res)
    # res = (pythons | linuxs) - (pythons & linuxs)     # 繁琐
    # print(res)
    # # {'alex', 'yuanhao', 'biubiu', 'egon', 'oldboy'}
    
    
    # 7、==
    # s1 = {1, 2, 3}
    # s2 = {3, 2, 1}
    # print(s1 == s2)         # True
    
    # 8、父集:>,>=
    # 9、子集:<,<=
    # s1 = {1, 2, 3, 4, 5}
    # s2 = {3, 2, 1}
    # print(s1 >= s2)              # True
    # print(s1 <= s2)              # False
    
    
    # ====================需要了解的
    # .update 更新
    # s = {"aaa", 22, 3.3, "bbb"}
    # s.update({22, 3, 4, 5})
    # print(s)                    # {3.3, 3, 4, 5, 'aaa', 'bbb', 22}
    
    # .pop 随机删
    # s = {"aaa", 22, 3.3, "bbb"}
    # res = s.pop()
    # print(res)                  # 3.3 有输出结果,随机删
    # print(s)                    # {'bbb', 'aaa', 22}
    
    # .remove 具体删掉某一个值
    # s = {"aaa", 22, 3.3, "bbb"}
    # res = s.remove("bbb")
    # print(res)                  # None 没有输出结果
    # print(s)                    # {'aaa', 3.3, 22}
    
    # .discard 删不存在的值会报错,remove不会
    # s = {"aaa", 22, 3.3, "bbb"}
    # s.discard("ccc")            # 没有该值会直接报错
    # print(s)
    # s.remove("ccc")             # 没有该值不会报错,返回原值
    # print(s)                    # {'aaa', 3.3, 22, 'bbb'}
    
    # .add 添加值,位置随机,因为集合无序
    # s = {"aaa", 22, 3.3, "bbb"}
    # s.add("ccc")
    # print(s)                    # {3.3, 'aaa', 'ccc', 22, 'bbb'}
    
    # isdisjoint 判断两个集合是否包含相同的元素
    # s1 = {1, 2, 3}
    # s2 = {4, 5, 6, 3}
    # print(s1.isdisjoint(s2))    # False
    
    
    # =========================总结
    # 存多个值
    # 无序
    # 可变
    # s = {1, 2, 3}
    # print(id(s))                # 2189058917984
    # s.add(4)
    # print(id(s))                # 2189058917984
    

    文件处理基础

    """
    1、什么是文件?
        文件是操作系统提供给用户/应用程序存取硬盘的一种机制
    2、为何要用文件?
        永久保存数据
    3、如何用文件?
        应用程序   open()
        操作系统   文件
        计算机硬件(硬盘)
    """
    # 1、操作文件的步骤
    # rawstring原生路径
    f = open(r'绝对路径或相对路径')
    # f的值,文件对象/文件句柄
    
    data = f.read()
    print(data)
    
    f.close()       # 回收系统资源
    
    # 2、with上下文管理
    with open(r'绝对路径或相对路径') as f1,
      open(r'绝对路径或相对路径') as f2:
        f1.read()
        f2.read()
    
  • 相关阅读:
    随手快递app冲刺2开发的第六天
    随手快递app冲刺2开发的第五天
    随手快递app冲刺2开发的第四天
    随手快递app冲刺2开发的第三天
    随手快递appc冲刺2开发的第二天
    随手快递app冲刺2开发的第一天
    程序员修炼之道:从小工到专家阅读笔记03
    安卓学习70
    安卓学习69
    安卓学习68
  • 原文地址:https://www.cnblogs.com/caojiaxin/p/14027448.html
Copyright © 2011-2022 走看看