为了账号安全,请及时绑定邮箱和手机立即绑定
  • from collections import defaultdict


    传统dict类型使用setdefault方法更加高效


    defaultdict是dict的扩展子类,它还会在键不存在的时候赋予默认值


    # defaultdict需要传递进来一个可调用的对象,list和int都是可调用对象

    default_dict = defaultdict(list)

    default_dict['bobby']


    key不存在时不会抛出异常,会在key不存在时调用传递进来的可调用对象(以上例子为list),给key添加value。值是list的空数组。

    如果传递的是int对象,则默认值为0;

    如果需要传嵌套dict,定义一个函数return实现

    users = ['bobby1','bobby2','bobby3','bobby1','bobby2','bobby2']

    for user in users:

        default_dict[user] +=1


    def gen_default():

        return {

            "name":"",

            "age":""

        }

    default_dict = defaultdict(gen_default)

    default_dict['group_01']

    # 会返回生成嵌套dict结构

    "group1":{

        "name":"",

        "nums":0

    }


    defaultdict是通过__missing__魔术方法实现原理的

            

    查看全部
  • deque是双端队列,可以对两端进行操作。


    初始化队列:

    ulist = deque(("xxx1","xxx2")),参数接收一个可迭代对象,

    尽量用deque保存相同类型的数据

    方法:append加到队列尾部、appendleft加到队列头部

    copy浅拷贝,队列里面有不可变元素会直接赋值,可变元素(例如列表)会直接指向原来地址

    extend在原来元素上动态扩容,接收可迭代对象

    extendleft

    insert(索引,元素)

    pop、popleft、remove、reverse


    应用场景:

    python3里,from queue import Queue

    Queue里面实际上是通过双端队列完成(put方法调用是append,get方法调用的是popleft)

    多线程:deque是线程安全的(由GIL保护的),list非线程安全

    查看全部
    0 采集 收起 来源:deque功能详解

    2022-09-14

  • tuple的优点:

    可以作为dict的key,

    查看全部
    0 采集 收起 来源:tuple功能详解

    2020-11-17

  • *可以接收任意多个参数放入一个tuple中

    **可以接收类似于参数赋值形式的实参放入dict中

    查看全部
  • ChainMap(dict1, dict2)

    会跳过相同的键

    生成迭代器而不是生成新拷贝

    new_dict.maps


    查看全部
  • python3默认dict有序

    popitem

    move_to_end

    查看全部
  • deque双端队列

    线程安全

    查看全部
    0 采集 收起 来源:deque功能详解

    2020-06-11

  • counter.update()

    counter.most_common()  堆实现


    查看全部
    0 采集 收起 来源:Counter功能详解

    2020-06-11

  • from collections import ChainMap
    d1 = {"a": "aa", "b": "bb"}
    d2 = {"b": "bbb", "c": "cc"}
    new_dict = ChainMap(d1, d2)
    print(new_dict.maps)
    new_dict.maps[0]["a"] = "aaa"
    for k, v in new_dict.items():
        print(k, v)


    查看全部
  • from collections import Counter
    x = Counter("aaabbcccddd")
    print(x, x.most_common(2))


    查看全部
    0 采集 收起 来源:Counter功能详解

    2020-04-15

  • 迭代:python中可以用for循环使用取值操作过程.

    可迭代对象:可以使用for循环遍历的对象,我们称之为可迭代对象.

    迭代器:提供数据和记录位置.

    生成器:如果函数中有yield我们称之为生成器

    如果在同一时间执行多个任务我们可以使用多进程和多线程,如果你想使用一个线程或进程然后让多个任务一次执行按顺序执行一个线程或者一个进程.  如果你在一个线程内部,想使用让多个任务交替执行,那么可以使用协程

    查看全部
    0 采集 收起 来源:Counter功能详解

    2020-03-08

  • 1)在python中以双下滑线开头并且以双下滑线结尾的函数

        2)魔法函数可以随意定义某个类的特性,这些方法在进行特定的操作时会自动被调用


    查看全部
    0 采集 收起 来源:Counter功能详解

    2020-03-08

  • 直接赋值,浅拷贝,深拷贝的区别

    # copy()方法
    # 浅拷贝,拷贝的是元素,当有地址时拷贝地址
    import copy
    mydeque1 = deque([1,[2,3],4,[5,6]])
    mydeque2 = mydeque1.copy()  # 浅拷贝 (这是deque的copy不是copy库的)
    mydeque3 = mydeque1         # 直接复制,指向mydeque1
    mydeque4 = copy.deepcopy(mydeque1) # 深拷贝,完全不会随着变化
    
    # 1赋新值
    mydeque1[0] = 9   # mydeque2不变,mydeque3变
    
    #[2,3]增加
    mydeque1[1].append(8)   # mydeque2,mydeque3都跟着变,
    
    #[5,6]赋新值
    mydeque1[3] = [9,9] # 改变指向地址,mydeque3变
    print(mydeque1,mydeque2,mydeque3,mydeque4)

    out:

    deque([9, [2, 3, 8], 4, [9, 9]]) # mydeque1
    deque([1, [2, 3, 8], 4, [5, 6]]) # mydeque2
    deque([9, [2, 3, 8], 4, [9, 9]]) # mydeque3
    deque([1, [2, 3], 4, [5, 6]])    # mydeque4


    查看全部
    0 采集 收起 来源:deque功能详解

    2020-02-13

  • ctrl +左键 模块名

    抽象基类

    查看全部
    0 采集 收起 来源:课程介绍

    2019-12-20

  • nametuple

    1,可以创建类对象

    查看全部

举报

0/150
提交
取消
课程须知
python基础知识已经掌握。
老师告诉你能学到什么?
1、深入理解python中的tuple的功能 2、namedtuple的功能详解 3、defaultdict的功能详解 4、deque的功能详解 5、Counter功能详解 6、OrderedDict功能详解 7、ChainMap功能详解

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!