亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • nametuple

    1,可以創建類對象

    查看全部
  • collections模塊

    查看全部
    0 采集 收起 來源:課程介紹

    2019-09-24

  • """
    ChainMap將多個字典連接起來,讓我們可以很方便的遍歷這些字典
    其子方法:
    items():?遍歷這個字典
    new_child():?添加字典元素
    maps屬性:以列表的形式將字典數據展示出來
    """
    
    from?collections?import?ChainMap
    
    
    if?__name__?==?"__main__":
    ????user_dict1?=?{"a":?"AA",?"b":?"BB"}
    ????user_dict2?=?{"b":?"BBB",?"c":?"CC",?"d":?"DD"}
    ????for?key,?value?in?user_dict1.items():??#?遍歷字典
    ????????print(key,?value)
    
    ????for?key,?value?in?user_dict2.items():
    ????????print(key,?value)
    
    ????print("-----------------")
    ????new_dict?=?ChainMap(user_dict1,?user_dict2)
    ????for?key,value?in?new_dict.items():
    ????????print(key,?value)
    ????print(new_dict)
    ????print(new_dict["c"])???#?取值key對應的值
    ????new_dict.new_child({"aa":"AAAAA",?"bb":"BBBBB"})
    ????print(new_dict)
    
    ????print(new_dict.maps)??#?以列表的形式將字典數據展示出來
    ????new_dict.maps[0]["a"]?=?"Hello?World"??#?將字典的第0個元素的a的值變為Hello?World
    ????print(new_dict)


    查看全部
  • """
    OrderedDict是dict的子類
    OrderedDict?保證添加的順序一致,先添加的在前面,后添加的在后面
    python2與python3結果不一致,注意版本問題
    在python3中,OrderedDict和dict是一樣的
    在python2和python3中,OrderedDict都是一樣的,建議使用OrderedDict
    OrderedDict的子方法:
    clear():?清除
    pop(key):?移除指定key對應的元素
    popitem():?移除最后一個元素
    move_to_end(key,?last):??將key對應的元素移動到last指定的位置
    """
    
    from?collections?import?OrderedDict
    
    
    if?__name__?==?"__main__":
    ????user_dict?=?dict()
    ????user_dict["b"]?=?"小二"
    ????user_dict["g"]?=?"田七"
    ????user_dict["c"]?=?"張三"
    ????user_dict["d"]?=?"李四"
    ????user_dict["a"]?=?"劉一"
    ????user_dict["f"]?=?"趙六"
    ????user_dict["e"]?=?"王五"
    ????print(user_dict)
    
    ????user_dict?=?OrderedDict()
    ????user_dict["b"]?=?"小二"
    ????user_dict["g"]?=?"田七"
    ????user_dict["c"]?=?"張三"
    ????user_dict["d"]?=?"李四"
    ????user_dict["a"]?=?"劉一"
    ????user_dict["f"]?=?"趙六"
    ????user_dict["e"]?=?"王五"
    ????print(user_dict)
    ????print(user_dict.move_to_end("b"))??#?將key為b對應的元素移動到最后位置
    ????print(user_dict)
    ????print(user_dict.pop("a"))??#?移除key為a的元素
    ????print(user_dict.popitem())???#?移除最后一個
    ????print(user_dict)


    查看全部
  • """
    Counter()函數接收一個可以迭代的對象,這個對象可以是列表,元組,字典,字符串等,返回一個字典
    其子方法:
    update():?追加
    most_common(n):??統計出出現次數最多的前n個元素
    
    """
    from?collections?import??Counter
    
    if?__name__?==?"__main__":
    ????users?=?["李四",?"張三",?"李四",?"王五",?"張三",?"田七"]
    ????user_counter?=?Counter(users)???#?統計
    ????print(user_counter)
    
    ????str_counter?=?Counter("ajkdihtdajkgybuatyaytayrtvaunywywghab")???#?統計字符串
    ????print(str_counter)
    ????str_counter.update("agafadadaaaaaassdss")??#?追加
    ????print(str_counter)
    
    ????user_counter.update(str_counter)??#?追加統計
    ????print(user_counter)
    
    ????print(str_counter.most_common(4))???#?返回出現次數最多的前4個元素


    查看全部
    0 采集 收起 來源:Counter功能詳解

    2019-08-31

  • """
    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)


    查看全部
  • def ask(*args, **kwargs):

    ? ? ? pass

    函數參數說明:*args參數可以接收元組(tuple)

    **kwargs參數接收的是字典(key-value)形式的參數

    #?函數參數?*args接收元組參數,?**kwargs接收字典參數
    def?ask(*args,?**kwargs):?
    ????print(type(args))
    ????print(type(kwargs))
    ????print(args,?kwargs)
    
    if?__name__?==?"__main__":
    ????ask("六月飛雪",?6)???#?元組參數
    ???ask(name?=?"劉豆豆",?age?=?22)???#?字典參數


    namedtuple中的_make()函數接收一個可迭代的對象,這個對象可以是元組,列表,字典,其參數一一對應。

    from?collections?import?namedtuple
    
    if?__name__?==?"__main__":
    ????User?=?namedtuple("User",?["name",?"age",?"height",?"cupSize",?"edu"])??#?使用namedtuple就相當于創建了一個User類
    ???user?=?User(name="彤彤",?age=23,?height=172,?cupSize="C罩杯",?edu?=?"清華大學")
    ????print(user.name,?user.age,?user.height,user.cupSize)
    
    ????girl_tuple1?=?("依依",?22,?171,?"B罩杯",?"北京大學")
    ????user1?=?User(*girl_tuple1)???#?將元組作為一個參數傳遞給函數,其前面加個星號即可
    ???print(user1.name,?user1.age,?user1.height,?user1.cupSize)
    
    ????girl_tuple2?=?("倩倩",?23,?171,?"B罩杯")
    ????user2?=?User(*girl_tuple2,?"北京大學")???#?元組作為參數傳遞
    ???print(user2.name,?user2.age,?user2.height,?user2.cupSize,?user2.edu)
    
    ????print("-------------------------------")
    ????#?字典
    ????user_dict?=?{
    ????????"name":"悠悠",
    ????????"age":?24,
    ????????"height":?171,
    ????????"cupSize":?"C罩杯"
    ????}
    
    ????user3?=?User(**user_dict,?edu="南開大學")???#?字典作為參數傳遞,其前加兩個星號
    ???print(user3.name,?user3.age,?user3.height,?user3.cupSize,?user3.edu)
    
    ????user4?=?User._make(girl_tuple1)??#元組作為其參數?參數一定要對應,否則報錯
    ????print(user4.name,?user4.age,?user4.height,?user4.cupSize,?user4.edu)
    
    ????user_list?=?["可可",?24,?172,?"B罩杯",?"浙江大學"]
    ????user5?=?User._make(user_list)???#?列表作為其參數???使用??_make()函數你不需要關心數據類型,只要傳遞一個可迭代的對象即可
    ???print(user5.name,?user5.age,?user5.height,?user5.cupSize,?user5.edu)
    
    ????print("------------------")
    ????user_dict1?=?{
    ????????"name":?"玉玉",
    ????????"age":?23,
    ????????"height":?173,
    ????????"cupSize":?"C罩杯",
    ????????"edu":?"武漢大學"
    ????}
    ????user6?=?User._make(user_dict1)???#?字典作為其參數,使用?_make()函數其參數是一個可迭代的對象,數據類型任意
    ???print(user_dict1)
    ????print(user_dict1.values())



    查看全部
  • tuple的子類namedtuple,使用namedtuple相當于定義了一個類。

    可以將tuple作為參數傳遞給函數,只要在tuple名前面加一個星號(*)即可。


    查看全部
  • tuple:元組,不可變,可迭代,可拆包

    girl?=?("珊珊",?21,?170,?"B罩杯")
    name,age,height,cupSize?=?girl???#?元組拆包
    print(name,?age,?height,?cupSize)

    其不可變不是絕對的,當元組中包含數組或其他可變數據對象時,就可以改變元組的內容。

    tuple比list好,原因:

    1. 其不可變性,可以保證在編譯時確定其值,使得性能優化,線程安全,可以作為dict的key,具有拆包特性

    2. 如果要拿C語言來類比,Tuple對應的是struct(結構體),而list對應的是array(數組)



    查看全部
    3 采集 收起 來源:tuple功能詳解

    2019-08-31

  • collections模塊

    查看全部
    0 采集 收起 來源:課程介紹

    2019-08-31

  • tuple比list好的地方

    查看全部
    0 采集 收起 來源:tuple功能詳解

    2019-08-28

  • 拆包的用法2

    查看全部
    0 采集 收起 來源:tuple功能詳解

    2019-08-28

  • 拆包的用法

    查看全部
    0 采集 收起 來源:tuple功能詳解

    2019-08-28

舉報

0/150
提交
取消
課程須知
python基礎知識已經掌握。
老師告訴你能學到什么?
1、深入理解python中的tuple的功能 2、namedtuple的功能詳解 3、defaultdict的功能詳解 4、deque的功能詳解 5、Counter功能詳解 6、OrderedDict功能詳解 7、ChainMap功能詳解

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!