• 各容器类型及内置方法


    1.列表
    l = [1, 2, 3, 4, 2, 2, ]
    res = l.count(2)
    print(res)
    print(l.count(2)) # 3 2在列表中出现了三次
    print(l.count(3)) # 1 2在列表中出现了一次

    l.clear 清空
    print(l.clear()) # none 没有返回值
    print(l) # [] 空列表

    l.reverse() 反转
    print(l.reverse) # none 没有返回值
    print(l) # [2, 2, 4, 3, 2, 1] 反转列表

    l=[3,2,4,5,]
    l.sort() 排序升
    print(l) # [2 ,3 ,4 ,5 ,]
    1.sort(reverse=True)
    print(l) 排序降 # [5, 4, 3, 2,]

    5.队列与堆栈
    # 队列 先进先出
    # l1 = []
    # # 先进
    # l1.append('first')
    # l1.append('second')
    # l1.append('third')
    # # 先出
    # print(l1.pop(0))
    # print(l1.pop(0))
    # print(l1.pop(0))

    # # 堆栈 先进后出
    # l1 = []
    # l1.append('frist')
    # l1.append('secound')
    # l1.append('thrid')
    # # 先出
    # print(l1.pop())
    # print(l1.pop())
    # print(l1.pop())

    6.元组 tuple
    res = tuple((1, 2,)) #定义元组
    print(res) # (1, 2)
    print(type(res)) # <class 'tuple'>

    # # # 在定义容器类型的时候,哪怕内部只有一个元素,你也要用逗号隔开 区分一下(******)
    # # 因为当定义元组时如果()中只有一个元素会识别成数字,字符串或者其他的东西,只有加了逗号才能识别为元组

    t = (1, 2, 3, 'a', 'b', [1, 2, 3])
    print(t[0]) # 1 元组可索引
    t[-1] = 'haha'
    print(t) # 报错 元组不可更改性
    t[-1][0] = '我改了'
    print(t) # (1, 2, 3, 'a', 'b', ['我改了', 2, 3]) 元组中的列表为可变类型所以可以改这个列表的值

    t = (1, 2, 3, 'a', 'b', [1, 2, 3])
    del t[0]
    print(t) # 报错 元组不可删除性

    # 切片(顾头不顾尾,步长)
    # print(t[::2])
    # 长度
    # print(len(t))
    # 成员运算in和not in
    # print('a' in t)
    # 循环
    # for i in t:
    # print(i)

    """
    能存多个值
    有序
    不可变
    """

    7.集合
    """
    1.关系运算
    2.去重
    """
    s = {1, 2, 3, 4, } # <class 'set'>
    print(type(s))
    s1 = set({7, 8, }) # 定义集合
    print(type(s1))
    s2 = set()
    print(type(s2)) # 空集合

    要注意
    # x = {} # <class 'dict'> 如果你仅仅只写了一个大括号 那么python默认将它当做字典类型
    # print(type(x))

    # 集合的元素遵循三个原则:
    # 1:每个元素必须是不可变类型
    # 可变:不可hash
    # 不可变:可hash
    # s = {1,2,3,4,5,6,'a',(1,2),[1,2]} # 报错
    # s = {1,2,3,4,5,6,'a',(1,2),{"name":'jason'}} # 报错

    s = {1, 2, 3, 3, 4, 4, }
    print(s) # {1, 2, 3, 4} 会将重复的元素自动去除
    print(s[1]) # 报错 不可索引的都是 无序
    # 注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

    7.集合的用法
    # 父集:>,>= 子集< ,<=
    s = {1, 2, 3, 4, 55}
    s2 = {1, 2, 666}
    s3 = {1, 3, 2, }
    print(s >= s2) # false 检测s是否包含了s2
    print(s3 <= s) # True 检测s3是否存在于s中
    """
    了解
    issubset()
    issuperset()
    """

    pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'}
    linux = {'frank', 'jerry', 'tank', 'egon', 'alex'}
    # 既报名python也报名linux的学生姓名
    print(pythons & linux) # 交集

    # 只报名python的学生姓名
    print(pythons - linux)

    # 只报名linux的学生姓名
    print(linux - pythons)

    # 没有同时报名两门课程的学生姓名
    print(pythons ^ linux) # 对称差集

    # 取出所有报了名的学生姓名
    print(pythons | linux) # 并集

    s = {1, 2, 3, 4, 5}
    print(s.add(666))
    print(s.add((1, 2, 3, 4))) # 将容器类型也当成一个元素传入

    8.字典
    d3 = {'name': 'jason', 'password': '123'}
    print(d3['name']) # jsason
    d3['name'] = 'egon'
    print(d3['name']) # egon 通过key去改变value

    d2 = {'name': 'jason', 'name': 'tank', 'name': 'nick', 'password': 123}
    print(d2['name']) # nick 强调:字典的key是不能重复的 要唯一标识一条数据
    # 如果重复了 只会按照最后一组重复的键值对存储

    d3 = {'name': 'jason', 'password': '123'}
    d3['age'] = 18 # 赋值语句当key不存在的情况下,会自动新增一个键值对(******)
    print(d3) # {'name': 'jason', 'password': '123', 'age': 18}

    删除
    # d3 = {'name':'jason','password':'123'}
    # del d3['name'] # 只对键操作就可以了

    # res = d3.pop('name') # 弹出仅仅是value
    # res = d3.pop('age') # 当键不存在的时候直接报错

    d3 = {'name': 'jason', 'password': '123'}
    d3.clear()
    print(d3)# {} 清空

    9.定义字典 三种
    其一 直接命
    # d1 = {'name':'jason','password':123}

    其二 通过函数命
    # d2 = dict(name='jason',password=123,age=18) #
    # print(d2,type(d2))

    其三 解压赋值法 只做了解

    10.字典k-y获取 key(),value()键值对items()

    d1 = {'name': 'jason', 'password': 123}
    print(d1.keys()) # dict_keys(['name', 'password']) 老母猪即迭代器对象可以把它当作一个列表

    for k in d1.keys():
    print(k)

    # print(d1.values()) # dict_values(['jason', 123])

    print(d1.items()) # dict_items([('name', 'jason'), ('password', 123)])
    # 就把它看成是列表套元组,元组的第一个元素是字典的key 第二个元素是字典的value

    11.字典通过key获取value的方式 2种 区别在于是否会报错
    其一
    d1 = {'name':'jason','pwd':123}
    print(d1['name']) # jason
    print(d1['age']) # 报错 不存在age键

    其二 dict.get()
    d1 = {'name': 'jason', 'pwd': 123}
    print(d1.get('name')) # jason
    print(d1.get('name', 'ao')) # jason name键存在会打印对应键的值
    print(d1.get('age')) # None 当字典的key不存在的情况 不报错 返回None
    print(d1.get('age', 'ao')) # ao age键不存在会返回输入的第二个元素ao
    # 所以res = print(d1.get('age', 'ao'))存在,就像pop()可以取返回值,而del不能取返回值一样

    12.dict.fromkeys() 快速的创建一个字典
    l1 = ['name','password','age','hobby']
    print(dict.fromkeys(l1,123)) # {'name': 123, 'password': 123, 'age': 123, 'hobby': 123}

    12.dict.popitem() 弹出
    d1 = {'name':'jason','age':18}
    # dict.popitem()
    print(d1.popitem()) # ('age', 18) 尾部以元组的形式弹出键值对

    13.dict.setdefault() 新增键值对
    d1 = {'name': 'jason', 'pwd': 123}
    res1 = d1.setdefault('name', 'xxoo')
    print(d1, res1) # {'name': 'jason', 'pwd': 123} jason 当键存在的情况下 不修改值 并且将原先key对应值返回给你
    res2 = d1.setdefault('age', 18)
    print(d1, res2)# {'name': 'jason', 'pwd': 123, 'age': 18} 18 当键不存在的情况下 新增一个键值对 并且将新增的键值对的值返回给你

    14.dict.update() 更新键值对
    d1 = {'name':'jason','pwd':123}
    d2 = {"age":18}
    d1.update(age=666)
    print(d1) # {'name': 'jason', 'pwd': 123, 'age': 666}

    d1 = {'name': 'jason', 'pwd': 123}
    d3 = {"age": '18', 'name2': 'ao'}
    d1.update(d3)
    print(d1) # {'name': 'jason', 'pwd': 123, 'age': '18', 'name2': 'ao'}
    # 把字典3中的值更新到字典一里

    1 = {'name': 'jason', 'password': 123}
    d1['age'] = 18
    print(d1) # {'name': 'jason', 'pwd': 123, 'age': 18} 添加一个age键值对

    15.
    可变:list dict set
    不可变 int float str tuple bool

  • 相关阅读:
    校验参考相关备份
    API接口设计
    redis 基础配置
    Apollo 统一配置中心
    http返回状态码记录
    ngnix实战
    OAuth2三方授权
    OAuth2授权协议记录
    KMP算法
    分治法
  • 原文地址:https://www.cnblogs.com/night-rain/p/11135341.html
Copyright © 2020-2023  润新知