为了账号安全,请及时绑定邮箱和手机立即绑定
  • """
    deque() 双端队列,是一个容器 ,它接收一个可迭代的对象,这个对象可以是列表,元组,字典等
    用来保存同类型的内容,可以把它当作一个对象来处理
    deque包含的方法:
    append(): 添加数据到队列
    appendleft(): 添加数据到队列头部
    clear(): 清空队列数据
    copy(): 返回一个浅拷贝,浅拷贝只拷贝元素
    count(): 返回队列中元素的数量
    extend(): 将两个deque合并为一个
    extendleft(): 从左边进行合并
    index(): 查找元素
    insert(): 在指定位置插入元素
    pop(): 移除队列的尾部元素
    popleft(): 移除队列的头部元素
    remove(): 删除某个元素
    reverse(): 将队列反转
    
    deque 是线程安全的,由GIL保护
    list 不是线程安全的
    """
    from collections import deque
    import copy  # 深拷贝
    
    if __name__ == "__main__":
        user_list = ["张三","李四","王五", "赵六"]
        user_name = user_list.pop()  # 队尾出队
        print(user_name, user_list)
        print("----------------------------")
    
        user_tuple = deque(("张三", "李四"))   # 初始化
        print(user_tuple)
        user_list = deque(["赵六", "王八"])
        print(user_list)
        user_dict = deque({
            "苹果": 12,
            "雪梨": 15
        })
        print(user_dict)
    
        print("-------------------------")
        user_info_list = deque(["依依", 23, 171])
        user_info = ("C罩杯", "北京大学", "中国北京")
        user_info_list.append(user_info)   # 添加元素
        print(user_info_list)
    
        print("--------------")
        name_deque = deque(["苹果", "香蕉", "橘子"])
        name_deque.append("芒果")   # 添加元素到队列尾部
        name_deque.appendleft("哈密瓜")  # 添加元素到队列头部
        print(name_deque)
    
        fruits_deque = name_deque.copy()   # 浅拷贝
        print(fruits_deque)
        print(id(fruits_deque) , id(name_deque))
    
        name_deque[1] = "西瓜"
        print(fruits_deque, name_deque)
    
        print("------------------------")
        color_deque = deque(["yellow","red", "blue", "black", "red"])
        print(color_deque)
        print("元素个数:",color_deque.count("red"))
        color_deque.pop()   # 队尾元素出队
        print(color_deque)
        color_deque.popleft()  # 队列头部元素出队
        print(color_deque)
        color_deque.insert(0, "green")  # 队列的0号位置插入元素
        print(color_deque)
    
        color_deque.remove("red")  # 移除值为 red的元素
        print(color_deque)
    
        color_deque.reverse()  # 反转队列
        print(color_deque)
    
        print(color_deque[1])   # 获取下标为1的元素


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

    2019-08-31

  • dict 设置默认值的方法:

    1、可以通过dict.setdefault(key,default_value)

    2、通过defaultdict(可调用的对象)

        可调用的对象:list、str、int、dict、函数等

    from collections import  defaultdict
    
    def gen_default():
        return {
            "name": "",
            "nums": 0
        }
    
    if __name__ == "__main__":
        # 统计出现的次数
        user_dict = {}  #空字典
        users = ["name1", "name2", "name3", "name1", "name2", "name1" ]
        print("方法1:")
        for user in users:
            if user not in user_dict:  # 判断是否存在
                user_dict[user] = 1
            else:
                user_dict[user] += 1
        print(user_dict)
    
        print("方法2:")
        for user in users:
            user_dict.setdefault(user, 0)
            user_dict[user] += 1
        print(user_dict)
    
    
        print("--------------------------------------")
        default_dict1 = defaultdict(list)  # defaultdict()函数接受一个可调用的对象,这个对象可以是list,str,int,dict等。
        print(default_dict1)
    
        # 统计颜色出现的次数
        default_dict2 = defaultdict(int)
        colors = ["red", "black", "red", "blue", "yellow", "green", "green"]
        for color in colors:
            default_dict2[color] += 1
        print(default_dict2)
    
        print("----------------------")
        default_dict3 = defaultdict(gen_default)
        default_dict3["group"]
        print(default_dict3)
    
        user_dict = {
            "name": "依依",
            "age": 24,
            "height": 171,
            "cupSize": "B罩杯",
            "hibbos": {
                "eat": ["火锅", "香蕉"],
                "sports": ["跑步","游泳"]
            }
        }
        print(user_dict)


    查看全部
  • namedtuple中的两个方法:
    (1) _make(): 该方法接收一个可迭代的对象,这个对象可以是元组,列表,字典等,其中的参数要一一对应(数量,属性)
    (2) _asdict():该方法可以将元组(tuple)转化为字典(dict)


    查看全部
  • tuple的子类namedtuple,使用namedtuple相当于定义了一个类。

    可以将tuple作为参数传递给函数,只要在tuple名前面加一个星号(*)即可。


    查看全部
  • collections模块

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

    2019-08-31

  • tuple比list好的地方

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

    2019-08-28

  • 拆包的用法2

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

    2019-08-28

  • 拆包的用法

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

    2019-08-28

  • tuple的功能

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

    2019-08-28

  • collections模块讲解的内容

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

    2019-08-28

  • hjijojiiojio

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

    2019-06-29

  • 实例:
    from collections import Counter
    
    str_t = "dsjakldjakljdakjdadlkjasdklajkdja"
    list_t = ['tom', 'tom1', 'tom2', 'tom1', 'tom1', 'tom']
    tuple_t = ('tom', 'tom1', 'tom2', 'tom1', 'tom1', 'tom')
    dict_t = {
        "tom": "male",
        "tom1": "male",
    }
    print(Counter(str_t))
    print(Counter(list_t))
    print(Counter(tuple_t))
    print(Counter(dict_t.values()))
    ls_counter = Counter(list_t)
    ls_counter.update(["tom4"])
    print(ls_counter)
    print(ls_counter.most_common(2))


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

    2019-02-28

  • 实例:
    from collections import deque
    
    list_t = ["tom_l", "jane_l", "bob_l"]
    tuple_t = ("tom_t", "jane_t", "bob_t")
    dict_t = {
        "tom_d": "male",
        "jane_d": "female",
        "bob_d": "male"
    }
    deq = deque(dict_t)
    deq.append("tim")
    deq.appendleft("lewin")
    deq.extend(tuple_t)
    deq.extendleft(list_t)
    deq.popleft()
    deq.pop()
    deq.remove("lewin")
    deq.reverse()
    print(deq.index("tim"))
    print(deq)


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

    2019-02-28

  • 实例:

    from collections import defaultdict
    from datetime import datetime
    
    
    def func1():
        return None
    
    
    dict_t = {}
    default_dict = defaultdict(int)
    key_str = "dskjakdljadakd"
    for k in key_str:
        dict_t.setdefault(k, 0)
        dict_t[k] += 1
        default_dict[k] += 1
    print("dict_t: {dict_t}\ndefault_dict: {default_dict}".format(dict_t=dict_t, default_dict=default_dict))
    ##defaultdict 调用自定义函数
    default_dict_custom_func = defaultdict(func1)
    #defaultdict 调用内置函数
    default_dict_sys_func = defaultdict(datetime.now)
    print("\ndefault_dict_custom_func: {0}\ndefault_dict_sys_func: {1}".format(default_dict_custom_func['func'], default_dict_sys_func['func']))


    查看全部
  • 实例:
    from collections import namedtuple
    
    
    key_s = ("name", "age", "gender", "birthday")
    User = namedtuple("User", key_s)
    value_s = ("lewin", 29, "male")
    
    value_dict = {
        "name": "tim",
        "age": 19,
        "gender": "male"
    }
    
    value_make = ("lily", "18", "female", "2001-02-02")
    
    user_tuple = User(*value_s, "1990-01-01")
    user_dict = User(**value_dict, birthday="2000-02-28")
    user_make = User._make(value_make)
    user_order = user_make._asdict()
    
    print("user_tuple: {0}\nuser_dict: {1}\nuser_make: {2}\nuser_order: {3}".format(user_tuple, user_dict, user_make, user_order))


    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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