最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

分享6 個值得收藏的 Python 代碼

 更新時間:2022年01月05日 11:08:25   作者:禿頭程序員  
這篇文章主要分享了6 個值得收藏的 Python 代碼,希望隊長正在學習的你有所幫助,需要的小伙伴也可以參考一下

1、類有兩個方法,一個是 new,一個是 init,有什么區(qū)別,哪個會先執(zhí)行呢?

class test(object):??? ? ?def __init__(self):??? ? ? ? ?print("test -> __init__")??? ? ?def __new__(cls):??? ? ? ? ?print("test ->__new__")??? ? ? ? ?return super().__new__(cls)?????a = test()

運行結果如下:

test ->__new__???test -> __init__

再來看另一個例子:

class test2(object):??? ? ?def __init__(self):??? ? ? ? ?print("test2 -> __init__")??? ??? ? ?def __new__(cls):??? ? ? ? ?print("test2 ->__new__")??? ? ? ? ?return object()??? ???b = test2()

運行結果如下:

test2 ->__new__

這里給出官方的解釋:init 作用是類實例進行初始化,第一個參數(shù)為 self,代表對象本身,可以沒有返回值。new 則是返回一個新的類的實例,第一個參數(shù)是 cls 代表該類本身,必須有返回值。很明顯,類先實例化才能產(chǎn)能對象,顯然是 new 先執(zhí)行,然后再 init,實際上,只要 new 返回的是類本身的實例,它會自動調用 init 進行初始化。但是有例外,如果 new 返回的是其他類的實例,則它不會調用當前類的 init。

下面我們分別輸出下對象 a 和對象 b 的類型:

print( type(a))???#<class '__main__.test'>? ??print( type(b))???#<class 'object'>

可以看出,a 是 test 類的一個對象,而 b 就是 object 的對象。

2、map 函數(shù)返回的對象

map()函數(shù)第一個參數(shù)是 fun,第二個參數(shù)是一般是 list,第三個參數(shù)可以寫 list,也可以不寫,作用就是對列表中 list 的每個元素順序調用函數(shù) fun 。

>>> b=map(lambda x:x*x,[1,2,3])???>>> [i for i in b]???[1, 4, 9]???>>> [i for i in b]???[]???>>>

有沒有發(fā)現(xiàn),第二次輸出 b 中的元素時,發(fā)現(xiàn)變成空了。原因是 map() 函數(shù)返回的是一個迭代器,并用對返回結果使用了 yield,這樣做的目的在于節(jié)省內存。

舉個例子:

#encoding:UTF-8 ????def yield_test(n): ???? ? ?for i in range(n): ???? ? ? ? ?yield call(i) ???? ? ?#做一些其它的事情 ? ? ???? ?def call(i): ???? ? ?return i*2 ???? ??#使用for循環(huán) ????x = yield_test(5)???print([i for i in x])???print([i for i in x])

執(zhí)行結果為:

[0, 2, 4, 6, 8]??? []

這里如果不用 yield,那么在列表中的元素非常大時,將會全部裝入內存,這是非常浪費內存的,同時也會降低效率。

3、正則表達式中 compile 是否多此一舉?

比如現(xiàn)在有個需求,對于文本

中國,用正則匹配出標簽里面的“中國”,其中 class 的類名是不確定的。

有兩種方法,代碼如下:
 

>>> import re??>>> text = '<div class="nam">中國</div>'???>>> #方法一???...???>>> re.findall('<div class=".*">(.*)</div>',text)???['中國']???>>> #方法二???...???>>> regex='<div class=".*">(.*)</div>'???>>> pattern = re.compile(regex)???>>> re.findall(pattern,text)???['中國']???>>>

這里為什么要用 compile 多寫兩行代碼呢? 原因是 compile 將正則表達式編譯成一個對象,加快速度,并重復使用。

4、[[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]

>>> [j for i in [[1,2],[3,4],[5,6]] for j in i]???[1, 2, 3, 4, 5, 6]???>>>

5、一行代碼將字符串 "->" 插入到 "abcdefg"中每個字符的中間

>>> "->".join("abcdef")???'a->b->c->d->e->f'???>>>

這里也建議多使用 os.path.join() 來拼接操作系統(tǒng)的文件路徑。

6、zip 函數(shù)

zip() 函數(shù)在運算時,會以一個或多個序列(可迭代對象)做為參數(shù),返回一個元組的列表。同時將這些序列中并排的元素配對。zip() 參數(shù)可以接受任何類型的序列,同時也可以有兩個以上的參數(shù);當傳入?yún)?shù)的長度不同時,zip 能自動以最短序列長度為準進行截取,獲得元組。

>>> a=[1,2]???>>> b=(3,4)???>>> zip(a,b)???<zip object at 0x000001A20201AA08>???>>> for i in zip(a,b):???... ? ? print(i)???...???(1, 3

到此這篇關于分享6 個值得收藏的 Python 代碼的文章就介紹到這了,更多相關值得收藏的 Python 代碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python使用pandas實現(xiàn)對數(shù)據(jù)進行特定排序

    Python使用pandas實現(xiàn)對數(shù)據(jù)進行特定排序

    在數(shù)據(jù)分析和處理過程中,排序是一項常見而重要的操作,本文將詳細介紹如何利用pandas對數(shù)據(jù)進行特定排序,包括基本排序、多列排序、自定義排序規(guī)則等方面的內容,需要的可以了解下
    2024-03-03
  • Django使用django-simple-captcha做驗證碼的實現(xiàn)示例

    Django使用django-simple-captcha做驗證碼的實現(xiàn)示例

    這篇文章主要介紹了Django使用django-simple-captcha做驗證碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • python curl2pyreqs 生成接口腳本實戰(zhàn)教程

    python curl2pyreqs 生成接口腳本實戰(zhàn)教程

    這篇文章主要介紹了python curl2pyreqs 生成接口腳本實戰(zhàn)教程,首先下載 curl2pyreqs 庫,打開調試模式,在Network這里獲取接口的cURL,需要的朋友可以參考下
    2023-10-10
  • Python3訪問MySQL數(shù)據(jù)庫的實現(xiàn)步驟

    Python3訪問MySQL數(shù)據(jù)庫的實現(xiàn)步驟

    要實現(xiàn)一個簡單的IM(即時通訊)系統(tǒng),支持用戶注冊、登錄和聊天記錄存儲,你可以使用Python和mysql數(shù)據(jù)庫,以下是一個基本的實現(xiàn)步驟,并通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-11-11
  • 利用4行Python代碼監(jiān)測每一行程序的運行時間和空間消耗

    利用4行Python代碼監(jiān)測每一行程序的運行時間和空間消耗

    這篇文章主要介紹了如何使用4行Python代碼監(jiān)測每一行程序的運行時間和空間消耗,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python中單下劃線和雙下劃線的使用詳解

    Python中單下劃線和雙下劃線的使用詳解

    在Python編程中,我們經(jīng)常會遇到單下劃線(_)和雙下劃線(__)的使用,本文就來和大家詳細講講單下劃線和雙下劃線的含義和用法,希望對大家有所幫助
    2023-06-06
  • selenium與xpath之獲取指定位置的元素的實現(xiàn)

    selenium與xpath之獲取指定位置的元素的實現(xiàn)

    這篇文章主要介紹了selenium與xpath之獲取指定位置的元素的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • python3.5的包存放的具體路徑

    python3.5的包存放的具體路徑

    在本篇內容里小編給大家分享了一篇關于python3.5的包存放的具體路徑相關內容,有需要的朋友們可以參考下。
    2020-08-08
  • python3.x上post發(fā)送json數(shù)據(jù)

    python3.x上post發(fā)送json數(shù)據(jù)

    這篇文章通過代碼示例給大家講述了python3.x上post發(fā)送json數(shù)據(jù)的詳細方法,一起學習下。
    2018-03-03
  • Django模板標簽中url使用詳解(url跳轉到指定頁面)

    Django模板標簽中url使用詳解(url跳轉到指定頁面)

    這篇文章主要介紹了Django模板標簽中url使用詳解(url跳轉到指定頁面),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論

千阳县| 龙岩市| 洛川县| 威信县| 寿光市| 武义县| 高密市| 沛县| 沙洋县| 石林| 福安市| 中超| 二连浩特市| 麻江县| 桦南县| 南京市| 灵宝市| 钟山县| 双牌县| 红安县| 古浪县| 渭南市| 磐石市| 抚顺县| 甘孜县| 成都市| 冀州市| 延长县| 宣城市| 博罗县| 丹东市| 濮阳县| 衡水市| 射阳县| 夏邑县| 香格里拉县| 峨眉山市| 通许县| 平安县| 巴林左旗| 六枝特区|