1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        圖解 NumPy:常用函數(shù)的內(nèi)在機(jī)制!

        共 2107字,需瀏覽 5分鐘

         ·

        2021-02-10 01:09

        ?△點(diǎn)擊上方Python貓”關(guān)注 ,回復(fù)“1”領(lǐng)取電子書

        選自Medium

        作者:Lev Maximov
        機(jī)器之心

        支持大量多維數(shù)組和矩陣運(yùn)算的 NumPy 軟件庫是許多機(jī)器學(xué)習(xí)開發(fā)者和研究者的必備工具,本文將通過直觀易懂的圖示解析常用的 NumPy 功能和函數(shù),幫助你理解 NumPy 操作數(shù)組的內(nèi)在機(jī)制。

        NumPy 是一個(gè)基礎(chǔ)軟件庫,很多常用的 Python 數(shù)據(jù)處理軟件庫都使用了它或受到了它的啟發(fā),包括 pandas、PyTorch、TensorFlow、Keras 等。理解 NumPy 的工作機(jī)制能夠幫助你提升在這些軟件庫方面的技能。而且在 GPU 上使用 NumPy 時(shí),無需修改或僅需少量修改代碼。


        NumPy 的核心概念是 n 維數(shù)組。n 維數(shù)組的美麗之處是大多數(shù)運(yùn)算看起來都一樣,不管數(shù)組有多少維。但一維和二維有點(diǎn)特殊。本文分為三部分:


        1. 向量:一維數(shù)組

        2. 矩陣:二維數(shù)組

        3. 三維及更高維


        本文參考了 Jay Alammar 的文章《A Visual Intro to NumPy》并將其作為起點(diǎn),然后進(jìn)行了擴(kuò)充,并做了一些細(xì)微修改。


        NumPy 數(shù)組和 Python 列表


        乍一看,NumPy 數(shù)組與 Python 列表類似。它們都可作為容器,能夠快速獲取和設(shè)置元素,但插入和移除元素會稍慢一些。


        NumPy 數(shù)組完勝列表的最簡單例子是算術(shù)運(yùn)算:


        除此之外,NumPy 數(shù)組的優(yōu)勢和特點(diǎn)還包括:


        更緊湊,尤其是當(dāng)維度大于一維時(shí);

        當(dāng)運(yùn)算可以向量化時(shí),速度比列表更快;

        當(dāng)在后面附加元素時(shí),速度比列表慢;

        通常是同質(zhì)的:當(dāng)元素都是一種類型時(shí)速度很快。


        這里 O(N) 的意思是完成該運(yùn)算所需的時(shí)間和數(shù)組的大小成正比,而 O*(1)(即所謂的「均攤 O(1)」)的意思是完成運(yùn)算的時(shí)間通常與數(shù)組的大小無關(guān)。


        向量:一維數(shù)組


        向量初始化


        為了創(chuàng)建 NumPy 數(shù)組,一種方法是轉(zhuǎn)換 Python 列表。NumPy 數(shù)組類型可以直接從列表元素類型推導(dǎo)得到。

        要確保向其輸入的列表是同一種類型,否則你最終會得到 dtype=’object’,這會影響速度,最終只留下 NumPy 中含有的語法糖。


        NumPy 數(shù)組不能像 Python 列表一樣增長。數(shù)組的末端沒有留下任何便于快速附加元素的空間。因此,常見的做法是要么先使用 Python 列表,準(zhǔn)備好之后再將其轉(zhuǎn)換為 NumPy 數(shù)組,要么是使用 np.zeros 或 np.empty 預(yù)先留下必要的空間:

        通常我們有必要?jiǎng)?chuàng)建在形狀和元素類型上與已有數(shù)組匹配的空數(shù)組。

        事實(shí)上,所有用于創(chuàng)建填充了常量值的數(shù)組的函數(shù)都帶有 _like 的形式:



        NumPy 中有兩個(gè)函數(shù)能用單調(diào)序列執(zhí)行數(shù)組初始化:



        如果你需要類似 [0., 1., 2.] 這樣的浮點(diǎn)數(shù)數(shù)組,你可以修改 arange 輸出的類型:arange(3).astype(float),但還有一種更好的方法。arange 函數(shù)對類型很敏感:如果你以整型數(shù)作為參數(shù)輸入,它會生成整型數(shù);如果你輸入浮點(diǎn)數(shù)(比如 arange(3.)),它會生成浮點(diǎn)數(shù)。


        但 arange 并不非常擅長處理浮點(diǎn)數(shù):


        在我們眼里,這個(gè) 0.1 看起來像是一個(gè)有限的十進(jìn)制數(shù),但計(jì)算機(jī)不這么看。在二進(jìn)制表示下,0.1 是一個(gè)無限分?jǐn)?shù),因此必須進(jìn)行約分,也由此必然會產(chǎn)生誤差。也因?yàn)檫@個(gè)原因,如果向 arange 函數(shù)輸入帶分?jǐn)?shù)部分的 step,通常得不到什么好結(jié)果:你可能會遇到差一錯(cuò)誤 (off-by-one error)。你可以使該區(qū)間的末端落在一個(gè)非整數(shù)的 step 數(shù)中(solution1),但這會降低代碼的可讀性和可維護(hù)性。這時(shí)候,linspace 就可以派上用場了。它不受舍入的影響,總能生成你要求的元素?cái)?shù)值。不過,使用 linspace 時(shí)會遇到一個(gè)常見的陷阱:它統(tǒng)計(jì)的是數(shù)據(jù)點(diǎn)的數(shù)量,而不是區(qū)間,因此其最后一個(gè)參數(shù) num 通常比你所想的數(shù)大 1。因此,上面最后一個(gè)例子中的數(shù)是 11,而不是 10。


        在進(jìn)行測試時(shí),我們通常需要生成隨機(jī)數(shù)組:



        向量索引


        一旦你的數(shù)組中有了數(shù)據(jù),NumPy 就能以非常巧妙的方式輕松地提供它們:



        除了「花式索引(fancy indexing)」外,上面給出的所有索引方法都被稱為「view」:它們并不存儲數(shù)據(jù),也不會在數(shù)據(jù)被索引后發(fā)生改變時(shí)反映原數(shù)組的變化情況。


        所有包含花式索引的方法都是可變的:它們允許通過分配來修改原始數(shù)組的內(nèi)容,如上所示。這一功能可通過將數(shù)組切分成不同部分來避免總是復(fù)制數(shù)組的習(xí)慣。


        Python 列表與 NumPy 數(shù)組的對比


        為了獲取 NumPy 數(shù)組中的數(shù)據(jù),另一種超級有用的方法是布爾索引(boolean indexing),它支持使用各類邏輯運(yùn)算符:


        any 和 all 的作用與在 Python 中類似,但不會短路。


        不過要注意,這里不支持 Python 的「三元比較」,比如 3<=a<=5。


        如上所示,布爾索引也是可寫的。其兩個(gè)常用功能都有各自的專用函數(shù):過度重載的 np.where 函數(shù)和 np.clip 函數(shù)。它們的含義如下:



        向量運(yùn)算


        NumPy 在速度上很出彩的一大應(yīng)用領(lǐng)域是算術(shù)運(yùn)算。向量運(yùn)算符會被轉(zhuǎn)換到 C++ 層面上執(zhí)行,從而避免緩慢的 Python 循環(huán)的成本。NumPy 支持像操作普通的數(shù)那樣操作整個(gè)數(shù)組。


        與 Python 句法一樣,a//b 表示 a 除 b(除法的商),x**n 表示 x?。


        正如加減浮點(diǎn)數(shù)時(shí)整型數(shù)會被轉(zhuǎn)換成浮點(diǎn)數(shù)一樣,標(biāo)量也會被轉(zhuǎn)換成數(shù)組,這個(gè)過程在 NumPy 中被稱為廣播(broadcast)。



        大多數(shù)數(shù)學(xué)函數(shù)都有用于處理向量的 NumPy 對應(yīng)函數(shù):


        標(biāo)量積有自己的運(yùn)算符:



        執(zhí)行三角函數(shù)時(shí)也無需循環(huán):



        我們可以在整體上對數(shù)組進(jìn)行舍入:


        floor 為舍、ceil 為入,around 則是舍入到最近的整數(shù)(其中 .5 會被舍掉)


        NumPy 也能執(zhí)行基礎(chǔ)的統(tǒng)計(jì)運(yùn)算:



        NumPy 的排序函數(shù)沒有 Python 的排序函數(shù)那么強(qiáng)大:


        Python 列表與 NumPy 數(shù)組的排序函數(shù)對比


        在一維情況下,如果缺少 reversed 關(guān)鍵字,那么只需簡單地對結(jié)果再執(zhí)行反向,最終效果還是一樣。二維的情況則會更困難一些(人們正在請求這一功能)。


        搜索向量中的元素


        與 Python 列表相反,NumPy 數(shù)組沒有索引方法。人們很久之前就在請求這個(gè)功能,但一直還沒實(shí)現(xiàn)。


        Python 列表與 NumPy 數(shù)組的對比,index() 中的方括號表示可以省略 j 或同時(shí)省略 i 和 j。


        一種查找元素的方法是 np.where(a==x)[0][0],但這個(gè)方法既不優(yōu)雅,速度也不快,因?yàn)樗枰獧z查數(shù)組中的所有元素,即便所要找的目標(biāo)就在數(shù)組起始位置也是如此。


        另一種更快的方式是使用 Numba 來加速 next((i[0] for i, v in np.ndenumerate(a) if v==x), -1)。


        一旦數(shù)組的排序完成,搜索就容易多了:v = np.searchsorted(a, x); return v if a[v]==x else -1 的速度很快,時(shí)間復(fù)雜度為 O(log N),但它需要 O(N log N) 時(shí)間先排好序。


        事實(shí)上,用 C 來實(shí)現(xiàn)它進(jìn)而加速搜索并不是問題。問題是浮點(diǎn)比較。這對任何數(shù)據(jù)來說都不是一種簡單直接可用的任務(wù)。


        比較浮點(diǎn)數(shù)


        函數(shù) np.allclose(a, b) 能在一定公差下比較浮點(diǎn)數(shù)數(shù)組。


        函數(shù) np.allclose(a, b) 的工作過程示例。并沒有萬能方法!


        np.allclose 假設(shè)所有被比較的數(shù)都在典型的 1 的范圍內(nèi)。舉個(gè)例子,如果要在納秒級的速度內(nèi)完成計(jì)算,則需要用默認(rèn)的 atol 參數(shù)值除以 1e9:np.allclose(1e-9, 2e-9, atol=1e-17) == False.

        math.isclose 則不會對要比較的數(shù)進(jìn)行任何假設(shè),而是依賴用戶給出合理的 abs_tol 值(對于典型的 1 的范圍內(nèi)的值,取默認(rèn)的 np.allclose atol 值 1e-8 就足夠好了):math.isclose(0.1+0.2–0.3, abs_tol=1e-8)==True.


        除此之外,np.allclose 在絕對值和相對公差的公式方面還有一些小問題,舉個(gè)例子,對于給定的 a 和 b,存在 allclose(a, b) != allclose(b, a)。這些問題已在(標(biāo)量)函數(shù) math.isclose 中得到了解決,我們將在后面介紹它。對于這方面的更多內(nèi)容,請參閱 GitHub 上的浮點(diǎn)數(shù)指南和對應(yīng)的 NumPy 問題(https://floating-point-gui.de/errors/comparison/)。


        矩陣:二維數(shù)組


        NumPy 曾有一個(gè)專門的 matrix 類,但現(xiàn)在已經(jīng)棄用了,所以本文會交替使用「矩陣」和「二維數(shù)組」這兩個(gè)術(shù)語。


        矩陣的初始化句法與向量類似:

        這里必須使用雙括號,因?yàn)榈诙€(gè)位置參數(shù)是 dtype(可選,也接受整數(shù))。


        隨機(jī)矩陣生成的句法也與向量的類似:



        二維索引的句法比嵌套列表更方便:



        view 符號的意思是當(dāng)切分一個(gè)數(shù)組時(shí)實(shí)際上沒有執(zhí)行復(fù)制。當(dāng)該數(shù)組被修改時(shí),這些改變也會反映到切分得到的結(jié)果上。


        axis 參數(shù)


        在很多運(yùn)算中(比如 sum),你需要告訴 NumPy 是在列上還是行上執(zhí)行運(yùn)算。為了獲取適用于任意維度的通用符號,NumPy 引入了 axis 的概念:事實(shí)上,axis 參數(shù)的值是相關(guān)問題中索引的數(shù)量:第一個(gè)索引為 axis=0,第二個(gè)索引為 axis=1,以此類推。因此在二維情況下,axis=0 是按列計(jì)算,axis=1 是按行計(jì)算。



        矩陣算術(shù)運(yùn)算


        除了逐元素執(zhí)行的常規(guī)運(yùn)算符(比如 +、-、、/、//、*),這里還有一個(gè)計(jì)算矩陣乘積的 @ 運(yùn)算符:

        我們已在第一部分介紹過標(biāo)量到數(shù)組的廣播,在其基礎(chǔ)上進(jìn)行泛化后,NumPy 支持向量和矩陣的混合運(yùn)算,甚至兩個(gè)向量之間的運(yùn)算:


        二維數(shù)組中的廣播


        行向量和列向量


        正如上面的例子所示,在二維情況下,行向量和列向量的處理方式有所不同。這與具備某類一維數(shù)組的 NumPy 實(shí)踐不同(比如二維數(shù)組 a— 的第 j 列 a[:,j] 是一個(gè)一維數(shù)組)。默認(rèn)情況下,一維數(shù)組會被視為二維運(yùn)算中的行向量,因此當(dāng)用一個(gè)矩陣乘以一個(gè)行向量時(shí),你可以使用形狀 (n,) 或 (1, n)——結(jié)果是一樣的。如果你需要一個(gè)列向量,則有多種方法可以基于一維數(shù)組得到它,但出人意料的是「轉(zhuǎn)置」不是其中之一。


        基于一維數(shù)組得到二維數(shù)組的運(yùn)算有兩種:使用 reshape 調(diào)整形狀和使用 newaxis 進(jìn)行索引:

        其中 -1 這個(gè)參數(shù)是告訴 reshape 自動(dòng)計(jì)算其中一個(gè)維度大小,方括號中的 None 是用作 np.newaxis 的快捷方式,這會在指定位置添加一個(gè)空 axis。


        因此,NumPy 共有三類向量:一維向量、二維行向量和二維列向量。下圖展示了這三種向量之間的轉(zhuǎn)換方式:

        一維向量、二維行向量和二維列向量之間的轉(zhuǎn)換方式。根據(jù)廣播的原則,一維數(shù)組可被隱含地視為二維行向量,因此通常沒必要在這兩者之間執(zhí)行轉(zhuǎn)換——因此相應(yīng)的區(qū)域被陰影化處理。


        矩陣操作


        合并數(shù)組的函數(shù)主要有兩個(gè):

        這兩個(gè)函數(shù)適用于只堆疊矩陣或只堆疊向量,但當(dāng)需要堆疊一維數(shù)組和矩陣時(shí),只有 vstack 可以奏效:hstack 會出現(xiàn)維度不匹配的錯(cuò)誤,原因如前所述,一維數(shù)組會被視為行向量,而不是列向量。針對這個(gè)問題,解決方法要么是將其轉(zhuǎn)換為行向量,要么是使用能自動(dòng)完成這一操作的 column_stack 函數(shù):

        堆疊的逆操作是拆分:

        復(fù)制矩陣的方法有兩種:復(fù)制 - 粘貼式的 tile 和分頁打印式的 repeat:

        delete 可以刪除特定的行和列:

        刪除的逆操作為插入,即 insert:

        append 函數(shù)就像 hstack 一樣,不能自動(dòng)對一維數(shù)組執(zhí)行轉(zhuǎn)置,因此同樣地,要么需要改變該向量的形狀,要么就需要增加一個(gè)維度,或者使用 column_stack:



        事實(shí)上,如果你只需要向數(shù)組的邊緣添加常量值,那么(稍微復(fù)雜的)pad 函數(shù)應(yīng)該就足夠了:



        網(wǎng)格


        廣播規(guī)則使得我們能更簡單地操作網(wǎng)格。假設(shè)你有如下矩陣(但非常大):


        使用 C 和使用 Python 創(chuàng)建矩陣的對比


        這兩種方法較慢,因?yàn)樗鼈儠褂?Python 循環(huán)。為了解決這樣的問題,MATLAB 的方式是創(chuàng)建一個(gè)網(wǎng)格:


        使用 MATLAB 創(chuàng)建網(wǎng)格的示意圖


        使用如上提供的參數(shù) I 和 J,meshgrid 函數(shù)接受任意的索引集合作為輸入,mgrid 只是切分,indices 只能生成完整的索引范圍,fromfunction 只會調(diào)用所提供的函數(shù)一次。


        但實(shí)際上,NumPy 中還有一種更好的方法。我們沒必要將內(nèi)存耗在整個(gè) I 和 J 矩陣上。存儲形狀合適的向量就足夠了,廣播規(guī)則可以完成其余工作。


        使用 NumPy 創(chuàng)建網(wǎng)格的示意圖


        沒有 indexing=’ij’ 參數(shù),meshgrid 會改變這些參數(shù)的順序:J, I= np.meshgrid(j, i)——這是一種 xy 模式,對可視化 3D 圖表很有用。


        除了在二維或三維網(wǎng)格上初始化函數(shù),網(wǎng)格也可用于索引數(shù)組:


        使用 meshgrid 索引數(shù)組,也適用于稀疏網(wǎng)格。


        獲取矩陣統(tǒng)計(jì)數(shù)據(jù)


        和 sum 一樣,min、max、argmin、argmax、mean、std、var 等所有其它統(tǒng)計(jì)函數(shù)都支持 axis 參數(shù)并能據(jù)此完成統(tǒng)計(jì)計(jì)算:

        三個(gè)統(tǒng)計(jì)函數(shù)示例,為了避免與 Python 的 min 沖突,NumPy 中對應(yīng)的函數(shù)名為 np.amin。


        用于二維及更高維的 argmin 和 argmax 函數(shù)會返回最小和最大值的第一個(gè)實(shí)例,在返回展開的索引上有點(diǎn)麻煩。為了將其轉(zhuǎn)換成兩個(gè)坐標(biāo),需要使用 unravel_index 函數(shù):


        使用 unravel_index 函數(shù)的示例


        all 和 any 函數(shù)也支持 axis 參數(shù):


        使用 all 和 any 函數(shù)的示例


        矩陣排序


        axis 參數(shù)雖然對上面列出的函數(shù)很有用,但對排序毫無用處:


        使用 Python 列表和 NumPy 數(shù)組執(zhí)行排序的比較


        這通常不是你在排序矩陣或電子表格時(shí)希望看到的結(jié)果:axis 根本不能替代 key 參數(shù)。但幸運(yùn)的是,NumPy 提供了一些支持按列排序的輔助函數(shù)——或有需要的話可按多列排序:


        1. a[a[:,0].argsort()] 可按第一列對數(shù)組排序:

        這里 argsort 會返回原數(shù)組排序后的索引的數(shù)組。


        這個(gè)技巧可以重復(fù),但必須謹(jǐn)慎,別讓下一次排序擾亂上一次排序的結(jié)果:


        a = a[a[:,2].argsort()]

        a = a[a[:,1].argsort(kind='stable')]

        a = a[a[:,0].argsort(kind='stable')]



        2. lexsort 函數(shù)能使用上述方式根據(jù)所有列進(jìn)行排序,但它總是按行執(zhí)行,而且所要排序的行的順序是反向的(即自下而上),因此使用它時(shí)會有些不自然,比如


        - a[np.lexsort(np.flipud(a[2,5].T))] 會首先根據(jù)第 2 列排序,然后(當(dāng)?shù)?2 列的值相等時(shí))再根據(jù)第 5 列排序。

        – a[np.lexsort(np.flipud(a.T))] 會從左向右根據(jù)所有列排序。



        這里,flipud 會沿上下方向翻轉(zhuǎn)該矩陣(準(zhǔn)確地說是 axis=0 方向,與 a[::-1,...] 一樣,其中三個(gè)點(diǎn)表示「所有其它維度」,因此翻轉(zhuǎn)這個(gè)一維數(shù)組的是突然的 flipud,而不是 fliplr。


        3. sort 還有一個(gè) order 參數(shù),但如果一開始是普通的(非結(jié)構(gòu)化)數(shù)組,它執(zhí)行起來既不快,也不容易使用。


        4. 在 pandas 中執(zhí)行它可能是更好的選擇,因?yàn)樵?pandas 中,該特定運(yùn)算的可讀性要高得多,也不那么容易出錯(cuò):


        – pd.DataFrame(a).sort_values(by=[2,5]).to_numpy() 會先根據(jù)第 2 列排序,然后根據(jù)第 5 列排序。

        – pd.DataFrame(a).sort_values().to_numpy() 會從左向右根據(jù)所有列排序。


        三維及更高維


        當(dāng)你通過調(diào)整一維向量的形狀或轉(zhuǎn)換嵌套的 Python 列表來創(chuàng)建 3D 數(shù)組時(shí),索引的含義是 (z,y,x)。第一個(gè)索引是平面的數(shù)量,然后是在該平面上的坐標(biāo):


        展示 (z,y,x) 順序的示意圖


        這個(gè)索引順序很方便,舉個(gè)例子,它可用于保存一些灰度圖像:a[i] 是索引第 i 張圖像的快捷方式。


        但這個(gè)索引順序不是通用的。當(dāng)操作 RGB 圖像時(shí),通常會使用 (y,x,z) 順序:首先是兩個(gè)像素坐標(biāo),最后一個(gè)是顏色坐標(biāo)(Matplotlib 中是 RGB,OpenCV 中是 BGR):



        展示 (y,x,z) 順序的示意圖


        這樣,我們就能很方便地索引特定的像素:a[i,j] 能提供 (i,j) 位置的 RGB 元組。


        因此,創(chuàng)建幾何形狀的實(shí)際命令取決于你所在領(lǐng)域的慣例:


        創(chuàng)建一般的三維數(shù)組和 RGB 圖像


        很顯然,hstack、vstack、dstack 這些函數(shù)不支持這些慣例。它們硬編碼了 (y,x,z) 的索引順序,即 RGB 圖像的順序:


        NumPy 使用 (y,x,z) 順序的示意圖,堆疊 RGB 圖像(這里僅有兩種顏色)


        如果你的數(shù)據(jù)布局不同,使用 concatenate 命令來堆疊圖像會更方便一些,向一個(gè) axis 參數(shù)輸入明確的索引數(shù)值:


        堆疊一般三維數(shù)組


        如果你不習(xí)慣思考 axis 數(shù),你可以將該數(shù)組轉(zhuǎn)換成 hstack 等函數(shù)中硬編碼的形式:


        將數(shù)組轉(zhuǎn)換為 hstack 中硬編碼的形式的示意圖


        這種轉(zhuǎn)換的成本很低:不會執(zhí)行實(shí)際的復(fù)制,只是執(zhí)行過程中混合索引的順序。


        另一種可以混合索引順序的運(yùn)算是數(shù)組轉(zhuǎn)置。了解它可能會讓你更加熟悉三維數(shù)組。根據(jù)你決定使用的 axis 順序的不同,轉(zhuǎn)置數(shù)組所有平面的實(shí)際命令會有所不同:對于一般數(shù)組,它會交換索引 1 和 2,對 RGB 圖像而言是 0 和 1:


        轉(zhuǎn)置一個(gè)三維數(shù)據(jù)的所有平面的命令


        不過有趣的是,transpose 的默認(rèn) axes 參數(shù)(以及僅有的 a.T 運(yùn)算模式)會調(diào)轉(zhuǎn)索引順序的方向,這與上述兩個(gè)索引順序慣例都不相符。


        最后,還有一個(gè)函數(shù)能避免你在處理多維數(shù)組時(shí)使用太多訓(xùn)練,還能讓你的代碼更簡潔——einsum(愛因斯坦求和):



        它會沿重復(fù)的索引對數(shù)組求和。在這個(gè)特定的例子中,np.tensordot(a, b, axis=1) 足以應(yīng)對這兩種情況,但在更復(fù)雜的情況中,einsum 的速度可能更快,而且通常也更容易讀寫——只要你理解其背后的邏輯。


        如果你希望測試你的 NumPy 技能,GitHub 有 100 道相當(dāng)困難的練習(xí)題:https://github.com/rougier/numpy-100。


        你最喜歡的 NumPy 功能是什么?請與我們分享!
        原文鏈接:https://medium.com/better-programming/numpy-illustrated-the-visual-guide-to-numpy-3b1d4976de1d
        Python貓技術(shù)交流群開放啦!群里既有國內(nèi)一二線大廠在職員工,也有國內(nèi)外高校在讀學(xué)生,既有十多年碼齡的編程老鳥,也有中小學(xué)剛剛?cè)腴T的新人,學(xué)習(xí)氛圍良好!想入群的同學(xué),請?jiān)诠杻?nèi)回復(fù)『交流群』,獲取貓哥的微信(謝絕廣告黨,非誠勿擾?。?/span>~

        近期熱門文章推薦:

        如何在 Python 程序中實(shí)現(xiàn)緩存?
        深入理解Python的TLS機(jī)制和Threading.local()
        為什么有些時(shí)候 Python 中乘法比位運(yùn)算更快?
        這有 73 個(gè)例子,徹底掌握 f-string 用法!

        感謝創(chuàng)作者的好文
        瀏覽 43
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            精品一二三| 成人国产在线观看| 国产精品视频无码| 黄色视频在线观看地址| 日本女人高潮视频| 少妇一区二区三区| 春色av| 91AV电影网| 大陆搡BBBBB搡BBBBBB| 东京热久久综合色五月老师| 中韩无码| 亚洲无码高清视频在线| 狠狠成人| 山东乱子伦视频国产| 欧美色色色| 午夜在线观看视频18| 体内射精视频| 97干视频| 9l人人澡人人妻人人精品| 91麻豆福利在线| 国产av一级| 免费无码婬片AAAA片直播| 青娱乐精品在线| 亚洲女同在线| 亚洲精品乱码久久久久久蜜桃欧美 | 欧美性爱动态| 青草中文娱乐网在线| 香蕉成人电影| 美女乱伦| 91.www91成人影视在线观看91成人网址9 | 91绿帽人妻-ThePorn| 99热3| 1插菊花网| 玖玖国产精品| 日韩性爱视频在线播放| 操女人逼AV| 亚洲在线免费视频| BBW老熟女BBw| 99精品视频免费看| 亚洲激情内射| 综合色色婷婷| 欧美日韩成人网站| 大香蕉亚洲网| 午夜三级视频| 色tv在线| av解说| h片免费观看| 91精品久久久久久久久| 日韩一级免费电影| 亚洲群交视频| 日韩少妇AV| 亚洲va欧美va天堂v国产综合 | 中文字幕国产精品| 日本一级婬片免费放| 精品色播| 起碰视频| 久久成人一区| 竹菊影视一区二区三区| 99热在线播放| 日本成人电影| 国内自拍第一页| 免费的毛片| 丰满岳乱妇一区二区三区全文阅读| 亚洲欧美国产高清vA在线播放| 操逼黄视频| 亚洲国产成人无码| 日韩一级一级一级| 国产高清秘成人久久| 欧美老妇性猛交| 淫揉BBB揉揉揉BBBBB| 一曲二曲三曲在线观看中文字| 成年人免费电影| 操逼视频网站免费观看| 欧美成人三级片| 精品尤物在线| 水果派解说AV无码一区| 国产亚洲无码| 精品国产乱码久久久久夜深人妻| 短发妹子双人啪啪秀| 大香蕉伊人久久| 亚洲性爱一区| 爱爱视频免费看| 中文字幕乱视频| 特级西西44www无码| 亚洲AV秘无码苍井空| 探花视频在线观看| 精品五月天| 国产成人无码Av片在线公司 | 亚洲最大成人网站| 蜜臀久久99精品久久久电影| 黄色小视频在线观看| www男人的天堂| 婷婷五月综合在线| 又大又黄又爽| 欧美一区二区三区成人片在线| 国产精品V亚洲精品V日韩精品| 一级看片免费视频| 伊人黄色片| 男人的天堂久久| 国产精品人人人人| 人人色人人黄| 欧美性爱A片| 天天艹天天| 特级西西444www| 亚洲最新AV在线| 亚洲欧美日韩在线| 西西西444www无码视频| 成人午夜视频精品一区| 成年人性生活免费视频| 丰满人妻一区二区三区Av猛交| 国产成人精品无码片区在线观91| 999成人电影| 国产一级操逼| 中文字幕视频一区| 手机免费Av| 青娱乐黄片| 国产香蕉视屏| 成人做爰100片免费-百度| 美国一级A片草草视频| 翔田千里被操120分钟| 久草视频在线播放| 亚洲激情视频| 日本一级特黄电影| 成人AV免费| 韩国色情中文字幕| 日本无码久久嗯啊流水| 婷婷五月电影| 能看的黄色视频| 中文字幕亚洲观看| 色色网站视频| 欧美国产另类| 亚洲女同在线| 欧美性猛交ⅩXXX乱大交| 国产视频无码在线| 91精品视频网| 亚洲天堂大香蕉| 国产三级片无码| 色婷婷在线影院| 日韩视频网址| caopeng97| 成人啪啪网站| 北京熟妇槡BBBB槡BBBB| 中文字幕有码在线视频| 国产精品AV在线| 超碰日本| 黄片无码| 一本到在线观看午夜剧场| 在线观看国产区| 天天操夜夜操视频免费高清| 深爱开心激情| 日本一区中文字幕| 日韩不卡一区二区三区| 国产美女福利| 国产第一精品| 少妇超碰| 97人人草| 亚洲一级黄| 99热1| gogogo视频在线观看黑人| 玖玖爱av| 欧洲无码一区二区三区| 91人妻人人澡人人爽人人DVD| 97人人操人人| 俄罗斯白嫩BBwBBwBBw91| 久久国产精品一区二区三区| 西西人体444rt高清大胆模特| 香蕉三级片| 91色伦| 牛牛在线视频| 亚洲福利在线观看| 丁香婷婷五月综合影院| 国产成人精品一区二区三区四区| 五月天无码免费视频| 男人V天堂| 久久精品无码视频| 色六月婷婷| 国产AV一区二区三区精品| 久久综合中文字幕| 亚洲男人天堂网| 欧美www| 最新毛片网站〖网:.〗| 日韩成人无码电影网站| 无码中文一区| 欧美毛片在线观看| 欧一美一婬一伦一区二区三区黑人 | 国产成人精品av| 操逼网站在线观看| 中文字幕伊人| 亚洲草比视频网| 免费无码一区二区三区四区五区| 日韩操逼AV| 狠狠躁日日躁夜夜躁A片男男视频 精品无码一区二区三区蜜桃李宗瑞 | 日韩中文无码一级A片| 国产乱色精品成人免费视频| 激情免费网站| 老太色HD色老太HD-百度| 免费观看黄色小视频| 草草在线视频| 超碰免费在线观看| 伊人五月在线| 国产1区在线观看| 99欧美精品| 无码av一区二区| 黄色直播在线观看| 国产成人99久久亚洲综合精品| 99热国产| 日本中文字幕乱伦| 91精品久久久久久久久久久久| 一级a一级a爰片免费| 日韩无码二区| 九色自拍| 婷婷激情中文字幕| 91在线观看网站| 欧亚AV| 波多野结衣av在线播放| 四川少妇搡bbbbb搡多人| 约操少妇| 操穴网| 久久这里只有精品9| 九九热国产视频| 亚洲综合免费观看| 2025AV中文字幕| 亚洲一卡| 九九小视频| 国产无码免费在线观看| 亚洲第一在线| 蝌蚪窝在线免费观看视频| 日韩欧美成人网| 台湾精品无码| 去干网欧美| 91水蜜桃| 国产精品视频久久久久| 国产亚洲欧美视频| 丰满人妻精品一区二区在线| 操逼免费网站| 两根茎一起进去好爽A片在线观看 日本三级AAA三级AAAA97 | 日本免费黄色| 欧美久久婷婷| 91精品国产一区二区| 日本特级黄A片免费观看| 中文字幕在线观看免费| AV影音在线| 亚洲专区区免费| 欧美性猛交XXXX乱大交| 亚洲国产精品视频| 亚洲欧洲在线播放| 美日韩无码视频| 欧美一级大香蕉| 免费国产视频| 精品精品视频| 日本理论片一道本| 亚洲免费成人网站| A一级横色大片| 天天干婷婷五月天| 一区二区入口| 欧美黄色性爱视频| 国产精品色婷婷99久久精品| 一区二区三区四区av| 国模一区二区| 亚洲av在线观看| 国产精品视频久久久久| 各种BBwBBwBBwBBw| 亚洲成人视屏| 人人操人人干97| 色色五月丁香| 男人的天堂视频网站| 91精品无码| 欧美一级日韩三级| 日韩一区二区三| 五月天激情影院| 成人免费黄| 久热思思| 国产精品偷拍| 欧美性猛交一区二区三区| 黄色小说在线看| 黄色操屄视频| 国产91无码精品秘入口在线观看| 大香蕉综合闲人| 初尝人妻滑进去了莹莹视频| 国产一级无码| 午夜成人黄色电影| 国产精品黄色片| 无码人妻一区二区一牛影视| 尻屄电影| 色噜噜人妻丝袜无码影院| 亚洲天堂免费观看| 91羞射短视频在线观看| 免费日比视频| 成人三级片在线| 国产欧美高清在线| 久天堂| 午夜高清无码视频| 北条麻妃在线播放一区| 亚洲成人在线观看视频| 日皮视频免费看| 色婷婷久久久久swag精品| 黄色一级视频在线观看| 日本成人黄色视频| 午夜午夜福利理论片在线播放| 人人干人人操人人| 四川少妇BBBB槡BBBB槡| 制服毛片| 国产精品人妻无码一区牛牛影视| 大屌一区二区三区| 精品国产区一区二| 国产精品无码天天爽视频| 在线黄色网| 亚洲国产精品成人va在线观看 | 国产A区| 亚洲无码av在线观看| 日韩精品一区二区三区中文在线 | 成人做爰100片免费-百度| 麻豆传媒在线| 黄片小视频| 你懂的在线视频观看| 日韩人妻丝袜中文字幕| 激情乱伦视频| 午夜试看120秒体验区的特点| 超碰人人人人人| 99视频色| 亚洲无码AV在线观看| 亚洲精品a| 成人毛片一区二区三区| 亚洲无线视频| 夫妻成人免费看片一区二区| 婷婷午夜福利| 91站街农村熟女露脸| 国产AV综合网| 久久久穴| 91香蕉在线观看视频在线播放| 精品无码人妻一区二区媚黑| 色色色综合| 亚洲欧洲日本在线| 久久男人网| 日韩欧美中文在线观看| 国产综合网站| 韩国AV三级| 97精品一区二区三区A片| 日本黄色电影网址| www.午夜福利| 91探花在线观看| 狼友视频免费观看| 超碰人人爽| 五月天色色婷婷| 亚洲天堂在线看| 先锋无码| 99成人在线视频| 五十路av| 鲁鲁鲁鲁鲁鲁鲁777777| 中文字幕免费在线播放| 国产欧美欧洲| 翔田千里50岁无码| 伊人婷婷色香综合| 日B视频在线观看| 天堂资源在线| 人人色在线观看| 影音先锋三级| wwwxx国产| 亚洲一区在线播放| 探花在线| 91精品网站| 山东乱子伦视频国产| 日本特级黄A片免费观看| 91丨人妻丨国产| 在线视频日本| 国产AV久| 亚洲成人第一页| 无套进入无套内谢| 俺去俺来也WWW色老板| 久久久久久国际四虎免费精品视频 | 台湾精品无码| 三级免费无限AV| 美女乱伦视频| 国产又粗又大又爽91嫩草| 亚洲最新无码| 国产成人精品AV| 日本成人电影一区二区三区| 91豆花视频18| 精品国产毛片| 激情丁香五月| 一级a免一级a做片免费| 亚洲一区无码| 大香蕉网伊人在线| 影音先锋资源| 91精片| 欧洲尤物不卡播放六区| 成人做爰黄A片免费视频网站野外 国产成人午夜精品无码区久久麻豆 | 免费观看毛片| 爱爱午夜福利| 欧美视频操逼| 亚洲av偷拍| 国外成人在线视频老鸭窝| 欧美日色| 麻豆成人无码| 九九热在线精品| 巨爆乳肉感一区二区三区视频 | 综合网久久| 午夜免费无码| 亚洲无码免费观看| 久久婷婷国产综合| 青娱乐三级在线免| 国产香蕉av| 午夜亚洲AV永久无码精品蜜芽| 久久无码高清| 国产成人精品亚洲男人的天堂| 国产无码免费在线观看| 国产精品尤物| 婷婷五月天在线播放| 免费av播放| 欧美一卡二卡三卡| 就要操逼| 亚洲视频在线免费观看| 日韩毛片一级| 四虎影库男人天堂| 无码AV一区| 无码人妻丰满熟妇区17水蜜桃| 今天成全在线观看高清| 人人澡人人摸| 成人在线免费观看视频| 男人的天堂手机在线| 1024黄| 99精品视频免费看| 男人的天堂婷婷| 天天做天天爱天天爽| 亚洲无码。| 午夜无码视频| 波多野结衣一级婬片A片免费下载| 国产P片内射天涯海角| 91人妻人人澡人人澡人人精品| 成人亚洲性情网站www在线| 国产香蕉网| 三级片AV在线| 四虎在线观看| 无码精品成人观看A片| 性欧美成人播放77777| 成人无码一区二区三区| 97在线资源| 免费a视频| 91在线无码精品在线看| 高清无码学生妹| 亚洲中文字幕免费视频| 色综合社区| 色欲av在线| www.18av| 水果派解说A∨无码区| 高潮无码视频| 国产精品久久久久久久久借妻| 欧美卡一卡二| AAA无码| 国产精品扒开腿| 欧美另类激情| 国产av三级| 天天躁狠狠躁av| 一区二区三区免费看| 黄色片AA| 欧美成人一区二区| 三级片中文| 老太色HD色老太HD.| 97久久精品国产熟妇高清网 | 91av视频| 午夜激情四射| 五月婷婷视频在线观看| 免费看成人747474九号视频在线观看| 久9视频| 中文在线а√天堂8| 91久久久无码国产一区二区三区| 黄片高清视频| 五月天婷婷国产| 亚洲精品一区二区三区在线观看| 亚洲精品秘一区二区三区影| 亚洲草片| 麻豆成人无码精品视频| 在线色| 一区二区在线不卡| 黄色小视频在线免费观看| 69av网站| 老司机永久免费91| 色九| 日韩专区中文字幕| 亚洲精品一区二区三区蜜桃| 91久久久久久久| 久久大香蕉精品| 日本精品久久| 色久在线| 欧美婬乱片A片AAA毛片地址| 欧美视频手机在线| 亚洲艹| 中文字幕亚洲无码视频| 男女草逼视频| 98色色| 国产色视频一区二区三区QQ号| 2024无码| 毛片毛片毛片| 制服乱伦| 久天堂| 久久这里有精品视频| 亚洲欧美另类在线| 色色色欧美| 成人黄色在线观看视频| 99综合| 午夜天堂网| 久久精品人人| 国产黄色AV片| 欧美在线网站| 天堂一区在线观看| 亚洲天堂电影网| 俺去俺来也在线www色官网| 亚欧免费视频| 亚洲免费人妻| 九九九九AV| 亚洲日本在线观看| 国产一级A| 成年人黄色视频| 男女操逼免费观看| 日韩黄色av| 精品一区电影| 免费看黄色A片| 日韩无码一区二区三区| AV片在线观看| 涩五月婷婷| 91网站观看| 国产96在线亚洲| 国产一区二区三区免费视频| 一级无码在线观看| 亚洲日韩在线视频播放| 中文字幕++中文字幕明步| 91亚洲国产成人精品一区| 春色AV| 18禁在线看| 特级丰满少妇免费观看| 亚洲欧美另类在线| 亚洲中文久久| 成人日韩AV| 亚洲成人大香蕉视频| 久草这里只有精品| 亚洲高清无码在线免费观看 | 国产思思99re99在线观看| 东方美美高清无码一区| 91精品丝袜久久久久久久久久粉嫩 | 欧美A片在线| 成年人黄色在线观看| 亚洲无码操逼视频| 嫩BBB槡BBBB槡BBBB撒尿-百度 | H片免费在线观看| 国产精品色情A级毛片| www.色999| 亚洲精品一区二三区不卡| 懂色av懂色av粉嫩av无码| 亚洲精品成人网站| 444444免费高清在线观看电视剧的注意| 亚洲精品午夜福利| 婷婷五月天网址| 粉嫩小泬BBBBBB免费看| 西西337| av字幕网| 91传媒在线观看| 激情久久婷婷| 柠檬AV导航| 天天干天天日天天干天天日| 欧洲毛片基地c区| 成人精品无码| 日韩艹| 水果派中文解说AⅤ| 亚洲AV无码蜜桃| 玖玖中文字幕| 天堂A片电影网站在线观看| 成人自拍网| 国产娇小13videos糟蹋| 中文字幕99页| 永久中文字幕| 日本无码片| 国产亲子乱婬一级A片| 巜人妻初尝按摩师BD中字| 一级性爱| 欧美国产一区二区| 翔田千里无码免费播放| 一级无码A片| 天天爽夜夜爽| 免费一级a片| 麻豆二区| 日本一级大片| 最近最经典中文MV字幕| 成人AV一AV二| 久草视频在线免费| 人人舔视频| 全国最大成人网站| 肉乳无码A片av| 人人草人人摸人人看| 大鸡巴久久久久久久| 波多野结衣AV网站| 国产日皮| np高辣调教视频| 一道本在线视频| 黄片高清无码| 麻豆性爱视频| 免费无码婬片AAAA片老婦 | 欧美午夜精品| 91在线精品一区二区| 在线免费看a| 青青草成人网站| 国产ts在线观看| AV老鸭窝| 黄片网址在线观看| 日日骚中文字幕| 日本中文字幕在线| 国产裸体美女网站| 久久久久国产视频| 成人操B| 日韩大片在线观看| www.五月天| 激情网站在线| 天天逼网| 欧美老妇大BBBBXXXX| 中文字幕视频一区| 人人看人人干| jizzjizz国产| 日本免费中文字幕| 91免费看片| 免费肏逼视频| 三级片网站在线观看| 豆花视频无码| 中文资源在线a| 男人天堂亚洲| 成人无码欧美大片免费看| 久操无码视频| www.亚洲无码| 91人妻成人精品一区二区| 免费观看av| 日韩免费在线观看视频| www.精品视频| 欧美老熟女18| 大地资源38页| 91人妻人人澡人人爽人人爽| 亚洲日韩欧美色图| 波多野结衣精品无码| 夜夜操天天| 一级片直播| 亚洲aaa在线| 国产日本在线视频| 午夜操人妻| 欧美日逼视频| 亚洲欧美中文字幕| 亭亭五月天| 伊人操| 免费A片国产毛无码A片| 久久一级视频| 北京熟妇槡BBBB槡BBBB| 69看片| 密臀AV在线| 俺去俺来WWW色官方| 丁香婷婷激情五月| 91AV电影网| 中文字幕亚洲视频在线观看| 欧美日韩在线视频免费| AV在线小说| 色福利网| 国产精品久久久久国产A级| 免费人成年激情视频在线观看| 欧美性生活| 亚洲秘无码一区二区三区胖子| 日韩性爱在线| 男人天堂影院| 黄色在线免费看| 欧亚毛片| 日本色综合| 亚洲综合色网| 91免费观看视频| 高潮喷水在线观看| 三级片久久久| 永久免费一区二区三区| 日韩一二三| 国产欧美自拍| A片视频网站| 国产一级二级三级| 国产suv精品一区二区6| 水蜜桃视频网| 国产精品成人AV在线| 亚洲vs无码秘蜜桃少妇| 久久影音先锋| 殴美老妇BBBBBBBBB| 影音先锋麻豆| 加勒比久久综合| 中文无码在线播放| 91精品人妻一区二区三区蜜桃| www.99| 人人操人人操人人| 一级欧美一级日韩| 亚洲AV免费| 91青青草| 美日韩视频欧美一区二区视频| 国产特級黃色大片| 制服丝袜无码| 女人自慰在线观看| 在线国产黄色| 欧美一级AAA大片免费观看| 男人的天堂视频在线观看| 亚洲jiZZjiZZ日本少妇| 成人自拍网站| 99久久亚洲精品日本无码| 天天射天天日天天干| 加勒比一区二区三区| av在线天堂网| 麻豆视频免费观看| 偷拍视频第一页| 成人片免费看| 91啦丨露脸丨熟女色啦| 欧美疯狂做受XXXXX高潮| 午夜福利在线视频| 高清无码在线免费| 天堂无码在线| 麻豆操逼| 高清无码一区| 六月丁香五月天| 亚洲无码三级片在线观看| 精品中文一区二区三区| 欧洲精品在线免费观看| 婷婷丁香五月网| 国产精品在线看| 黄色无码视频在线观看| 日韩爆乳一区二区三区| 中文字幕aV在线| 午夜精品久久久| 国内免费AV| 午夜精品久久久久久久| 蜜桃av秘无码一区二区| 亚洲中文无码在线| 免费观看黄色视频| 伊人综合电影| 中文字幕高清视频| 国产无遮挡又黄又爽又色视频软件| 五月丁香综合在线| www.91熊猫成人网| 国产骚女| 久久精品www人人爽人人| 中文字幕+乱码+中文字幕在线| 亚洲黄色在线视频| 久久精品视频在线观看| 美女黄网站| 99re6热在线精品视频功能| 香蕉国产在线视频| 一卡二卡在线视频| gogogo日本免费观看高清电视剧的注意 | 亚洲另类图片小说| 一级二级三级视频| 亚洲区成人777777精品| 蜜桃91精品秘成人取精库| jiujiuav| 免费播放片色情A片| 国产18欠欠欠一区二区| 91成人综合| 精品日韩AV| 国产性猛交╳XXX乱大交| 成人黄色小电影| 亚洲黄片免费在线观看| 亚洲中文字幕免费| 青青草手机视频| 操噜噜噜噜噜插| 欧美视频A| 日韩1234区| 色婷视频| 亚洲va欧洲va国产va不卡| 中文字幕精品在线观看| 国产视频网| 国产高清做爱免费在线视频| 成人午夜视频精品一区| 人人摸天天| 暖暖高清无码| 日韩精品综合| 在线黄| 免费一级黄色电影| 婷婷深爱五月丁香网| 国产看色免费| 成人性爱免费网站| 日韩不卡一区| 日本免费高清视频| 视频一区中文字幕| 欧美性猛交一区二区三区精品| 日韩V欧美| 北条麻妃三区| 亚洲理论视频| 天天干天天拍| 99re在线| 天天日穴| 亚欧一区二区| 男人天堂手机在线| 东方av在线观看| 欧洲成人在线播放| 无码中文综合成熟精品AV电影| 久久婷婷在线| 午夜福利10000| 91精品久久人妻一区二区夜夜夜| 曰本精品综合网在线| 日本中文无码| 国内自拍偷拍视频| 成人性爱av| 你懂的视频| 91人妻日韩人妻无码专区精品| 91无码国产成人精品| 四川BBBBBB搡BBBBB| 精东影业秘国产传媒| 亚洲中文字幕在线视频| 杨幂操逼视频| 亚洲AV黄色| 国产黄A| 亚洲综合色网| AV天堂小说网| 国产白丝精品91爽爽久久| 小泬BBBBBB免费看| 欧美一级性爱| 国产AV日韩AⅤ亚洲AV中文| 中国美女一级黄片| a级毛片在线观看| 国产精品久久视频| 翔田千里无码在线观看| 蜜桃91在线| 欧美A片在线播放| 亚洲精品高清无码| 成人视频欧美| 中国精品77777777| 北条麻妃在线一区| 91视频免费网站| 久久午夜福利视频| 国产乱码精品一品二品| 秋霞午夜视频| 蜜臀久久99精品久久久晴天影视 | 男人操女人免费网站| 国产116页| 九九热精品视频| 成人一区二区在线| 亚洲免费黄| 日本爱爱小视频| 女人18特级毛片。| 俺来也俺去www色情网| 亚洲中文字幕在线视频观看| 五月丁香综合激情| 五月丁香六月情| 国产激情一区二区三区| 日韩欧美成人视频| 国产又粗又大又爽91嫩草| 婷婷视频网| 亚洲av自拍| 婷婷五月天激情小说| 美女操网站| 日韩成人免费在线观看| 九九乱伦| 色妞视频精品一区| 日韩色情电影| 成人做爰A片免费看网站| 操逼视频大全| 天天草B| 一本色道久久综合无码| 亚洲的天堂的αⅴ| 西西444大胆无码视频| 99草在线视频| 成人爽a毛片一区二区免费| 欧美视频免费操逼图。| 亚洲真人无码| 呦小BBBB小小BBBB| 无码一区二区三区四区| 国产农村乱婬片A片AAA图片| 激情丁香婷婷| a片在线免费观看| 精品国产999久久久免费| 青青草成人网站| 无码精品ThePorn| 亚洲中文字幕第一| AV网站免费在线观看| 99热网站| 四色五月婷婷| 亚洲撸撸| 国产精品视频免费| 一级免费爱爱视频| 国产在线精品观看| 91精品无码| 久操免费在线观看| 欧美啪啪啪| 曰本中文字幕在线视频| 国产一级a免一级a免费| 337p大胆色噜噜噜噜噜| 九九久久影院| 97精品人妻一区二区| 7777av| 一级无码A片| www.婷婷色| 午夜aaa| aⅴ免费观看| 亚洲涩情91日韩一区二区| 日韩精品在线观看视频| 婷婷中文字幕亚洲| 中文字幕在线观看网址最新地址| 亚洲AV无码一区二区三竹菊| 国产亚洲99久久精品熟女| 97人妻一区二区三区| 69成人导航| 人人爽人人操人人| 日本黄色三级片| 中文字幕成人网站中文字幕| 农村老太HD肉HD| 神马午夜福利| 日韩无码AV中文字幕|