第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
  • Dq的方法自己要學(xué)著看一下。


    66fb6037000149ff09640542.jpg
    查看全部
    0 采集 收起 來(lái)源:deque功能詳解

    2024-10-01

  • Dq也是c語(yǔ)言寫(xiě)的性能非常的高。


    66fb5f0200014f7b09640542.jpg
    查看全部
    0 采集 收起 來(lái)源:deque功能詳解

    2024-10-01

  • _asdict會(huì)得到一個(gè)有序的字典,這個(gè)有序指的是將key進(jìn)行排序。


    66f775740001025e09640542.jpg
    查看全部
    0 采集 收起 來(lái)源:namedtuple功能詳解

    2024-09-28

  • Python是一門(mén)解釋性語(yǔ)言,也就是會(huì)將程序先編譯成字節(jié)碼PyC,PVC的加載速度會(huì)比較快。


    66f38e210001469509640542.jpg
    查看全部
    0 采集 收起 來(lái)源:tuple功能詳解

    2024-09-25

  • Pupil的進(jìn)階講解。


    66f38d920001618909640542.jpg
    查看全部
    0 采集 收起 來(lái)源:tuple功能詳解

    2024-09-25

  • deque雙端隊(duì)列

    list和deque通常被當(dāng)作容器,存儲(chǔ)相同類(lèi)型元素;tuple通常被當(dāng)作一個(gè)類(lèi)對(duì)象,存儲(chǔ)不同類(lèi)型元素


    deque創(chuàng)建:

    deque(iterable)(list, tuple, dict都是iterable的,傳入dict時(shí)key作為deque中的元素)


    deque方法:

    pop(),popleft(),index(),clear(),insert(),remove(),extend(),extendleft(),count()...


    最關(guān)鍵的:

    deque是線程安全的(多線程編程時(shí),往里put元素?zé)o需加鎖),list不是線程安全的

    查看全部
    0 采集 收起 來(lái)源:deque功能詳解

    2024-08-31

  • count_dict?=?{}
    all?=?['a','b','c','a','b','b']
    for?i?in?all:
    ????if?i?not?in?count_dict:
    ????????count_dict[i]?=?0
    ????count_dict[i]?+=?1
    print(count_dict)
    ==>{'a':?2,?'b':?3,?'c':?1}

    當(dāng)dict中沒(méi)有對(duì)應(yīng)的key時(shí)會(huì)拋出keyError異常,所以一般做法是先判斷dict中是否有該key,若沒(méi)有先初始化

    忘記判斷怎么辦?defaultdict會(huì)解決

    count_dict?=?defaultdict(int)
    all?=?['a','b','c','a','b','b']
    for?i?in?all:
    ????count_dict[i]?+=?1
    print(count_dict)
    ==>defaultdict(<class?'int'>,?{'a':?2,?'b':?3,?'c':?1})


    defaultdict:

    當(dāng)你訪問(wèn)一個(gè)不存在的key時(shí)==>dict[key],defaultdict會(huì)自動(dòng)創(chuàng)建鍵值對(duì),value根據(jù)創(chuàng)建defaultdict時(shí)傳入的類(lèi)型對(duì)象或函數(shù)對(duì)象決定

    類(lèi)型對(duì)象:

    dic_1?=?defaultdict(int)
    dic_2?=?defaultdict(tuple)
    dic_3?=?defaultdict(list)
    dic_4?=?defaultdict(str)
    dic_5?=?defaultdict(set)
    
    print(dic_1['a'])
    print(dic_2['a'])
    print(dic_3['a'])
    print(dic_4['a'])
    print(dic_5['a'])
    ==>
    0
    ()
    []
    
    set()

    函數(shù)對(duì)象:

    可以定義嵌套結(jié)構(gòu),如下dict嵌套dict

    def?gen_default():
    ????return?{
    ????????'name':'',
    ????????'member_nums':0
    ????}
    
    default_dict?=?defaultdict(gen_default)?????#注意不能加(),因?yàn)槭菍?duì)象不是方法
    print(default_dict['group1'])
    ==>{'name':?'',?'member_nums':?0}
    查看全部
    0 采集 收起 來(lái)源:defaultdict的功能詳解

    2024-08-30

  • namedtuple是一個(gè)類(lèi)

    User?=?namedtuple('User',['name','age','height'])?#類(lèi)名,[屬性]
    user?=?User(name='bobby',age=29,height=175)
    print(user.name,user.age,user.height)
    ==>bobby?29?175

    為什么不直接class一個(gè)類(lèi),還要弄一個(gè)namedtuple出來(lái)?

    1、class一個(gè)類(lèi)要定義很多變量,代碼量增加,空間復(fù)雜

    2、在數(shù)據(jù)處理時(shí),經(jīng)常需要從數(shù)據(jù)庫(kù)中讀入數(shù)據(jù),從數(shù)據(jù)庫(kù)中讀出的數(shù)據(jù)其實(shí)就是一個(gè)tuple


    復(fù)習(xí)一下*args,**kwargs

    如果不指明參數(shù)名稱(chēng),全部算在args這個(gè)tuple中

    如果指明參數(shù)名稱(chēng),就算在kwargs這個(gè)dict中

    def?ask(*args,**kwargs):???kwargs:{}????args:('bobby',29)
    ????pass
    
    ask('bobby',29)
    def?ask(*args,**kwargs):???args:()????kwargs:{'name':'bobby','age':29}
    ????pass
    ????
    ask(name='bobby',age=29)
    def?ask(*args,**kwargs):???kwargs:{'age':29}????args:('bobby')
    ????pass
    
    ask('bobby',age=29)


    所以創(chuàng)建類(lèi)的時(shí)候,參數(shù)也可以這樣寫(xiě):

    user_tuple?=?('bobby',29,175)
    user?=?User(*user_tuple)
    user_dict?=?{
    ????'name':'bobby',
    ????'age':29,
    ????'height':175
    }
    user?=?User(**user_dict)


    namedtuple的常用函數(shù)

    1、_make(iterable)(list, tuple, dict都是iterable的)創(chuàng)建namedtuple

    user_list?=?["bobby",29,175]
    user_tuple?=?("bobby",29,175)
    user_dict?=?{
    ????'name':'bobby',
    ????'age':29,
    ????'height':175
    }
    user?=?User._make(user_list/user_tuple/user_dict)

    和上面*args,**kwargs的區(qū)別在哪里呢?

    *args,**kwargs靈活性更強(qiáng),但_make()不用加*/**且多一個(gè)list參數(shù)方式

    例:數(shù)據(jù)庫(kù)中user表中的數(shù)據(jù)全部取出然后再加一個(gè)列

    User?=?namedtuple('User',['name','age','height','edu'])?
    user?=?User(*user_tuple,'master')
    User?=?namedtuple('User',['name','age','height','edu'])?
    user?=?User(**user_dict,edu='master')

    _make()不行


    2、_asdict()將namedtuple轉(zhuǎn)為dict

    User?=?namedtuple("User",["name","age","height"])
    user_tuple?=?("bobby",29,175)
    user?=?User(*user_tuple)
    user_dict?=?user._asdict()
    print(user_dict)
    ==>{'name':?'bobby',?'age':?29,?'height':?175}
    查看全部
    0 采集 收起 來(lái)源:namedtuple功能詳解

    2024-08-30

  • tuple的功能:

    • 不可變、iterable

    • 拆包

    • tuple不可變性不是絕對(duì)的(所以放進(jìn)tuple中的元素最好是不可變的)

    • tuple比list好的地方

    ????????????immutable(不可變)的重要性

    ????????????????????性能優(yōu)化:元素全為immutable的tuple會(huì)作為常量在編譯時(shí)確定

    ????????????????????線程安全(tuple本身加鎖)

    ????????????????????可以作為dict的key

    ????????????????????拆包特性

    user_tuple?=?("bobby",29)
    name,age?=?user_tuple
    ==>bobby?29
    user_tuple?=?("bobby",29,175,"beijing","edu")
    name,?*other?=?user_tuple
    print(name,other)
    ==>bobby?[29,?175,?'beijing',?'edu']
    查看全部
    0 采集 收起 來(lái)源:tuple功能詳解

    2024-08-30

  • tuple:不可變,可迭代對(duì)象iterable(實(shí)現(xiàn)了__iter__或者_(dá)_getitem__魔法函數(shù))


    元祖的拆包:

    用法:

    user_tuple = ("bobby", 28, 178)

    name, age, height = user_tuple

    只想提取第一個(gè)參數(shù):

    name, *other = user_tuple

    輸出:

    bobby, [29, 175]


    tuple的不可變不是絕對(duì)的:

    tuple內(nèi)部嵌套了可變對(duì)象(不太建議使用),嵌套對(duì)象可修改


    tuple比list好用的地方:

    immutable(不可變對(duì)象)的重要性:

    ①性能優(yōu)化(元素全部為不可變對(duì)象的tuple會(huì)作為常量在編譯時(shí)確定,因此產(chǎn)生如此顯著的速度差異)

    ②線程安全

    ③可以作為dict的key(immutable對(duì)象是可哈希的,dict key也是可哈希的,適合做字典的key)

    使用list做key會(huì)報(bào)錯(cuò)提示:TypeError: unhashable type: 'list'

    ④拆包特性


    如果拿c語(yǔ)言類(lèi)比,tuple好比struct,list對(duì)應(yīng)的是array

    查看全部
    0 采集 收起 來(lái)源:tuple功能詳解

    2024-01-04

  • from collections import namedtuple


    使用namedtuple可以創(chuàng)建一個(gè)類(lèi),返回一個(gè)帶有命名字段的新元祖子類(lèi)


    # namedtuple 相當(dāng)于創(chuàng)建了一個(gè)User類(lèi),里面含有name,age,height成員變量

    # namedtuple是tuple的子類(lèi),

    # 1、代碼比直接定義類(lèi)更簡(jiǎn)單

    # 2、namedtuple比較節(jié)省空間,少了class里面很多內(nèi)置的變量

    # 3、非常適用于創(chuàng)建簡(jiǎn)單對(duì)象,特別用作數(shù)據(jù)處理

    User = namedtuple("User",["name", "age", "height"])

    user = User(name="bobby", age=29, height=178)

    print(user.age, user.name, user.height)


    # 應(yīng)用場(chǎng)景:user表數(shù)據(jù)全部取出然后加一個(gè)列edu,比較方便(pymysql,查詢(xún)返回結(jié)果是tuple)

    User = namedtuple("User",["name", "age", "height", "edu"])

    user = User(name="bobby", age=29, height=178)

    user.edu = "master"


    # 也可以通過(guò)傳入tuple或者dict來(lái)初始化namedtuple

    User = namedtuple("User",["name", "age", "height"])

    user_tuple = ("bobby", 29, 175)

    user = User(*user_tuple)


    user_dict = {

    ????????"name":"bobby",

    ????????"age":29,

    ????????"height":175

    }

    user = User(**user_dict)


    #namedtuple實(shí)現(xiàn)原理:

    點(diǎn)擊進(jìn)去namedtuple類(lèi)看,找到python的一個(gè)內(nèi)置函數(shù)方法:

    exec(class_definition, namespace) #把字符串當(dāng)做代碼執(zhí)行

    繼續(xù)點(diǎn)擊class_definition,有個(gè)_class_template,點(diǎn)擊進(jìn)去,這個(gè)就是namedtuple的實(shí)質(zhì)

    內(nèi)部代碼實(shí)現(xiàn)原理實(shí)際上是生成一個(gè)class,里面的方法就是namedtuple具有的所有方法

    其中包括_make、_replace、__repr__、_asdict、__getnewargs__方法

    重點(diǎn)介紹_make、_asdict方法

    _make方法可傳遞一個(gè)iterable可迭代對(duì)象

    實(shí)際前面例子創(chuàng)建User對(duì)象時(shí),也可以用_make方法

    User = namedtuple("User",["name", "age", "height"])

    user_tuple = ("bobby", 29, 175)

    user = User._make(user_tuple)


    _asdict方法, 可以將tuple轉(zhuǎn)換成OrderedDict

    User = namedtuple("User",["name", "age", "height"])

    user_tuple = ("bobby", 29, 175)

    user = User(*user_tuple)

    user_info_dict = user._asdict()


    因?yàn)閚amedtuple是繼承自tuple,所以它也支持拆包功能:

    User = namedtuple("User",["name", "age", "height","edu"])

    user = User(name="bobby", age=29, height=178, edu="master")

    name, age, *other = user

    查看全部
    0 采集 收起 來(lái)源:namedtuple功能詳解

    2024-01-04

  • 有大量數(shù)據(jù)需要做統(tǒng)計(jì)代碼量會(huì)比較大,可使用Counter類(lèi)

    from collections import Counter

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

    users_counter = Counter(users)

    print(users_counter?)


    Counter可以傳遞任何可迭代對(duì)象

    users_counter = Counter("asdasdgdfwee")

    Counter是dict子類(lèi),繼承自dict,它返回dict類(lèi)型統(tǒng)計(jì)結(jié)果

    ?

    users_counter.update("asdasdg") #?也可以進(jìn)行合并統(tǒng)計(jì),使用update方法

    它也可以傳遞另外一個(gè)Counter對(duì)象

    users_counter1 = Counter("asdasdgdfwee")

    users_counter2 = Counter("sdf342zz")

    users_counter1.update(users_counter2?)


    users_counter.most_common(2) # 統(tǒng)計(jì)出現(xiàn)次數(shù)最多的前n個(gè)元素

    它的內(nèi)部是通過(guò)_heapq堆數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,這個(gè)堆是專(zhuān)門(mén)解決這個(gè)topn問(wèn)題,性能比自己遍歷更高

    查看全部
    0 采集 收起 來(lái)源:Counter功能詳解

    2023-08-27

  • ChainMap

    from collections import ChainMap

    user_dict1 = {'a':"rio1", "b":"rio2"}

    user_dict2 = {'b':"rio3", "d":"rio3"}

    for key, value in user_dict1.item():

    ????print(key,value)

    for key, value in user_dict2.item():

    ????print(key,value)

    如果類(lèi)似上面的dict定義了多個(gè),就需要分別去遍歷多次item

    ChainMap可以把所有dict連接起來(lái)一起遍歷。

    new_dict = ChainMap(user_dict1,user_dict2)

    for key, value in new_dict.item():

    ????xxxxxx

    如果兩個(gè)字典存在相同的key,只會(huì)遍歷先找到的key,后面出現(xiàn)相同的key都不會(huì)遍歷


    在原來(lái)的chainmap字典中再動(dòng)態(tài)新增字典,返回一個(gè)新的ChainMap

    new_chainmap = new_dict.new_child( {"aa":11,“bb":22} )


    以列表形式把數(shù)據(jù)展示出來(lái)

    print(new_dict.maps)

    => [{'a':"rio1", "b":"rio2"},?{'b':"rio3", "d":"rio3"}]


    ChainMap并不是把多個(gè)數(shù)據(jù)合并變成一個(gè)dict,而是在上面加了一個(gè)訪問(wèn)迭代器,并沒(méi)有拷貝到新的變量里。

    new_dict.maps[0]['a'] = 'rio'

    for key, value in new_dict.item():

    ? ? print(key,value)

    查看全部
    0 采集 收起 來(lái)源:ChainMap功能詳解

    2023-09-13

  • OrderedDict:有序字典

    from collections import OrderedDict


    它是dict的子類(lèi),它是有序的,其順序是:先添加的在前邊,后添加的在后

    user_dict = OrderedDict()

    user_dict['a'] = "rio1"

    user_dict['c"] = "rio2"

    user_dict["b"] = "rio3"


    python3下dict和OrderedDict都是有序的,OrderedDict提供了額外的函數(shù)

    pop_item可以不需要傳遞key并刪除最后一個(gè)item,pop需要傳遞key

    user_dict.popitem()

    user_dict.pop(key)


    move_to_end("key"),把指定元素移到最后


    拓展:

    前面小結(jié)namedtuple的_asdict()返回的就是orderedDict

    查看全部
    0 采集 收起 來(lái)源:OrderedDict功能詳解

    2023-09-13

  • from collections import defaultdict


    傳統(tǒng)dict類(lèi)型使用setdefault方法更加高效


    defaultdict是dict的擴(kuò)展子類(lèi),它還會(huì)在鍵不存在的時(shí)候賦予默認(rèn)值


    # defaultdict需要傳遞進(jìn)來(lái)一個(gè)可調(diào)用的對(duì)象,list和int都是可調(diào)用對(duì)象

    default_dict = defaultdict(list)

    default_dict['bobby']


    key不存在時(shí)不會(huì)拋出異常,會(huì)在key不存在時(shí)調(diào)用傳遞進(jìn)來(lái)的可調(diào)用對(duì)象(以上例子為list),給key添加value。值是list的空數(shù)組。

    如果傳遞的是int對(duì)象,則默認(rèn)值為0;

    如果需要傳嵌套dict,定義一個(gè)函數(shù)return實(shí)現(xiàn)

    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']

    # 會(huì)返回生成嵌套dict結(jié)構(gòu)

    "group1":{

    ????"name":"",

    ????"nums":0

    }


    defaultdict是通過(guò)__missing__魔術(shù)方法實(shí)現(xiàn)原理的

    ????????

    查看全部
    0 采集 收起 來(lái)源:defaultdict的功能詳解

    2023-09-13

  • deque是雙端隊(duì)列,可以對(duì)兩端進(jìn)行操作。


    初始化隊(duì)列:

    ulist = deque(("xxx1","xxx2")),參數(shù)接收一個(gè)可迭代對(duì)象,

    盡量用deque保存相同類(lèi)型的數(shù)據(jù)

    方法:append加到隊(duì)列尾部、appendleft加到隊(duì)列頭部

    copy淺拷貝,隊(duì)列里面有不可變?cè)貢?huì)直接賦值,可變?cè)兀ɡ缌斜恚?huì)直接指向原來(lái)地址

    extend在原來(lái)元素上動(dòng)態(tài)擴(kuò)容,接收可迭代對(duì)象

    extendleft

    insert(索引,元素)

    pop、popleft、remove、reverse


    應(yīng)用場(chǎng)景:

    python3里,from queue import Queue

    Queue里面實(shí)際上是通過(guò)雙端隊(duì)列完成(put方法調(diào)用是append,get方法調(diào)用的是popleft)

    多線程:deque是線程安全的(由GIL保護(hù)的),list非線程安全

    查看全部
    0 采集 收起 來(lái)源:deque功能詳解

    2022-09-14

  • tuple的優(yōu)點(diǎn):

    可以作為dict的key,

    查看全部
    0 采集 收起 來(lái)源:tuple功能詳解

    2020-11-17

  • *可以接收任意多個(gè)參數(shù)放入一個(gè)tuple中

    **可以接收類(lèi)似于參數(shù)賦值形式的實(shí)參放入dict中

    查看全部
    0 采集 收起 來(lái)源:namedtuple功能詳解

    2020-08-25

  • ChainMap(dict1, dict2)

    會(huì)跳過(guò)相同的鍵

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

    new_dict.maps


    查看全部
    0 采集 收起 來(lái)源:ChainMap功能詳解

    2020-06-11

  • python3默認(rèn)dict有序

    popitem

    move_to_end

    查看全部
    0 采集 收起 來(lái)源:OrderedDict功能詳解

    2020-06-11

  • deque雙端隊(duì)列

    線程安全

    查看全部
    0 采集 收起 來(lái)源:deque功能詳解

    2020-06-11

首頁(yè)上一頁(yè)1234567下一頁(yè)尾頁(yè)

舉報(bào)

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

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買(mǎi)該課程,無(wú)需重復(fù)購(gòu)買(mǎi),感謝您對(duì)慕課網(wǎng)的支持!