精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python算法常用技巧與內置庫

開發 后端 算法
近些年隨著python的越來越火,python也漸漸成為了很多程序員的喜愛。許多程序員已經開始使用python作為第一語言來刷題。

 [[347377]]

python算法常用技巧與內置庫

近些年隨著python的越來越火,python也漸漸成為了很多程序員的喜愛。許多程序員已經開始使用python作為第一語言來刷題。

最近我在用python刷題的時候想去找點python的刷題常用庫api和刷題技巧來看看。類似于C++的STL庫文檔一樣,但是很可惜并沒有找到,于是決定結合自己的刷題經驗和上網搜索做一份文檔出來,供自己和大家觀看查閱。

1.輸入輸出:

1.1 第一行給定兩個值n,m,用空格分割,第一個n決定接下來有n行的輸入,m決定每一行有多少個數字,m個數字均用空格分隔.

解決辦法:python的input函數接收到的輸入默認都是字符串,所以我們使用 字符串切割、強制類型轉換、列表生成器就可以完美解決輸入問題。代碼如下: 

  1. # 接收兩個值,使用n,m分別接收列表中的兩個值  
  2. n, m  = [int(x) for x in input().split()]  
  3. # 構造輸入列表的列表  
  4. num_list = []  
  5. for i in range(n):  
  6.     # python可以不用在意m的值,將所有數值接收進來然后使用len判斷長度  
  7.     tmp_list = [int(x) for x in input().split()]  
  8.     num_list.append(tmp_list) 

同理,若是用逗號(,)分隔的話,split函數中傳入相同的值就行。

1.2 輸出一行數字

由于python的print函數默認利用換行作為結束符,所以我們需要將它修改成我們需要的間隔,代碼如下: 

  1. for i in range(10):  
  2.     print(i, end=' '

end是print函數中的一個參數,決定輸出的結束字符,這里修改成空格代表輸出一行數字,用空格間隔,其它字符可以自行修改。

2.空列表生成,字符串修改,列表遍歷

2.1 代碼編寫過程中,有時候會需要一個帶有長度的,有初始值的空列表,生成方式如下: 

  1. # 1. 用乘法生成一個初始值為False的長度為100的一維列表  
  2. visited = [False] * 100  
  3. # 2. 利用列表生成器生成一個n*m的二維的初始值為0的列表  
  4. visited = [[0 for i in range(m)] for j in range(n)] 

2.2 在python當中字符串是無法原地修改的,如果每次修改都生成一個新字符串,那么對修改次數很多且字符串很當的情況,開銷是很大的。所以一般是把字符串轉為列表進行修改最后再轉回來。 

  1. string = 'I love to eat chicken'  
  2. # 將字符串轉換成列表  
  3. string_list = list(string)  
  4. # .......對字符串列表進行修改  
  5. # Code  
  6. # 將字符串列表重新拼接成字符串  
  7. #string = ''.join(string_list) 

2.3 python中列表遍歷有許多種不同的方式,最直接的辦法是直接對列表進行迭代遍歷,但是因為我們往往是基于索引對數組進行操作且需要修改數組的值,所以更推薦用以下代碼中的第二三中辦法: 

  1. num_list = [i for i in range(10)]  
  2. # 1. 直接迭代列表  
  3. for item in num_list:  
  4.     # Code  
  5.     pass  
  6. # 2. 通過索引進行迭代  
  7. for i in range(len(num_list)):  
  8.     print(num_list[i])  
  9. # 3. 通過enumerate函數進行迭代  
  10. for index, value in enumerate(num_list):  
  11.     # index為當前元素的索引,value為當前元素的值  
  12.     print(index, value) 

3. collections庫的使用

3.1 deque隊列

deque 是python中的隊列(FIFO先進先出),隊列在進行隊首彈出的時候會比list要快。

尤其在使用BFS(深度優先搜索)的時候,隊列是必須要使用到的。部分deque使用代碼如下: 

  1. from collections import deque  
  2. # 初始化一個最大長度為3的隊列  
  3. d = deque([1,2,3], maxlen=3 
  4. # 因為初始化隊列最大長度為3,再添加元素會把隊頭元素擠出  
  5. d.append(4)  
  6. # 初始化一個不限制長度的隊列  
  7. d = deque()  
  8. # 添加元素到隊尾部  
  9. d.append(1)  
  10. d.append(2)  
  11. d.append(3)  
  12. # 將隊首的元素彈出返回  
  13. print(d.popleft())  
  14. # 彈出隊尾元素并返回值  
  15. print(d.pop())  
  16. # 在隊首插入元素  
  17. d.appendleft(0) 

3.2 Counter計數器

Counter 是一個計數器,可以對一個序列計數,計算序列中某個元素出現的數量。

以下是示例代碼: 

  1. import collections  
  2. # 一共有三種初始方法  
  3. # 1. 傳入一個序列  
  4. print(collections.Counter(['a', 'b', 'c', 'a', 'b', 'b']))  
  5. # 2.傳入一個字典 
  6. print(collections.Counter({'a':2, 'b':3, 'c':1}))  
  7. # 3.直接利用=傳參  
  8. print(collections.Counter(a=2b=3c=1))  
  9. # 也可以無參數構造,利用update函數更新  
  10. c = collections.Counter()  
  11. print('Initial :', c)  
  12. # Initial: Counter()  
  13. c.update('abcdaab')  
  14. print('Sequence:', c)  
  15. # Sequence: Counter({'a': 3, 'b': 2, 'c': 1, 'd': 1})  
  16. c.update({'a':1, 'd':5})  
  17. print('Dict:', c)  
  18. # Dict: Counter({'d': 6, 'a': 4, 'b': 2, 'c': 1})  
  19. # 可以通過訪問字典的訪問方式訪問Counter對象  
  20. for letter in 'abcde': 
  21.      print('%s : %d' % (letter, c[letter]))  
  22. # elements()方法可以返回一個包含所有Counter數據的迭代器  
  23. c = collections.Counter('extremely')  
  24. c['z'] = 0  
  25. print(list(c.elements()))  
  26. # ['e', 'e', 'e', 'm', 'l', 'r', 't', 'y', 'x']  
  27. # most_common()返回前n個最多的數據  
  28. c=collections.Counter('aassdddffff')  
  29. for letter, count in c.most_common(2):  
  30.     print('%s: %d' % (letter, count))  
  31. # f: 4  
  32. # d: 3  
  33. # Counter對象可以進行加減交并,直接使用運算符 +、-、&、|  
  34. # +會將兩個字典中相同字符的出現次數相加,-會給出第一個Counter相對于第二個的差集。交集給出兩個計數器當中都有的元素,且計數被賦值為較小的那個,并集為兩個計數器的元素出現最多的那個。  
  35. c1 = collections.Counter(['a', 'b', 'c', 'a', 'b', 'b'])  
  36. c2 = collections.Counter('alphabet')  
  37. print ('C1:', c1)  
  38. print ('C2:', c2)  
  39. print ('\nCombined counts:') 
  40. print (c1 + c2)  
  41. print ('\nSubtraction:')  
  42. print (c1 - c2)  
  43. print ('\nIntersection (taking positive minimums):')  
  44. print (c1 & c2) 
  45. print ('\nUnion (taking maximums):')  
  46. print (c1 | c2)  
  47. # 以下為輸出:  
  48. C1: Counter({'b': 3, 'a': 2, 'c': 1})  
  49. C2: Counter({'a': 2, 'l': 1, 'p': 1, 'h': 1, 'b': 1, 'e': 1, 't': 1})  
  50. Combined counts:  
  51. Counter({'a': 4, 'b': 4, 'c': 1, 'l': 1, 'p': 1, 'h': 1, 'e': 1, 't': 1})  
  52. Subtraction:  
  53. Counter({'b': 2, 'c': 1})  
  54. Intersection (taking positive minimums):  
  55. Counter({'a': 2, 'b': 1})  
  56. Union (taking maximums):  
  57. Counter({'b': 3, 'a': 2, 'c': 1, 'l': 1, 'p': 1, 'h': 1, 'e': 1, 't': 1}) 

3.3 defaultdict——帶有默認值的字典

一般情況下創建的字典dict是不含有默認值的,即若是字典中不包含a這個key,調用dct{a}的話就會報錯。

在進行算法設計和數據結構設計的時候我們希望任意給定一個key都能從字典中取出值來,哪怕只是一個默認值,這個時候我們就需要用到defaultdict。

例如在用字典表示圖中一個節點的相連節點的時候,我們希望將這個節點作為一個key,然后與它相連的節點組成一個列表作為它的value,這個時候我們就可以使用defaultdict(list)來創建一個默認值為列表的字典。 

  1. # list的默認值為空列表  
  2. list_dict = collections.defaultdict(list)  
  3. # int的默認值為0  
  4. int_dict = collections.defaultdict(int)  
  5. print(list_dict['a']) 
  6. print(int_dict['a'])  
  7. # 輸出:[]  
  8. # 輸出:0 

3.4 小結

collection中常被用來寫算法和數據結構的就是這幾個,其它比如排序字典和命名元組很少會用上。

4.排序

4.1 對列表排序

對列表排序有兩種方法,一種是使用列表內置的sort函數,sort函數直接在列表原地修改,無返回值,可以通過參數key自定義比較的key和比較函數。

第二種就是使用python的sorted函數,這個函數自由度比較高,可以自己設定比較函數和比較的key,返回一個新的列表。

如果需要自定義比較的函數,需要從庫functools導入函數cmp_to_key函數,將比較函數轉為key,使用代碼如下: 

  1. def custom_sort(x,y):  
  2.     if x>y:  
  3.         # 返回-1代表需要排在前面  
  4.         return -1  
  5.     if x<y:  
  6.         # 返回1代表需要排在后面  
  7.         return 1  
  8.     return 0  
  9. lst = [i for i in range(10, -1, -1)]  
  10. print(lst) 
  11. lst.sort()  
  12. print(lst)  
  13. print(sorted(lst, key=cmp_to_key(custom_sort)))  
  14. # 輸出如下:  
  15. # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]  
  16. # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
  17. # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 

4.2 對字典/元組列表排序

若是需要對字典(將字典利用item函數轉化成元組列表)或者元組列表這種每一個item有兩個值的序列進行排序,這個時候就需要利用sorted函數中的key來決定取哪個值排序。代碼如下: 

  1. # 利用字符串創建計數器字典  
  2. d = dict(collections.Counter('Hello World'))  
  3. print(d)  
  4. # 排序  
  5. print(sorted(d.items(), key=lambda x: x[1], reverse=True))  
  6. # 輸出如下:  
  7. # {'H': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'W': 1, 'r': 1, 'd': 1}  
  8. # [('l', 3), ('o', 2), ('H', 1), ('e', 1), (' ', 1), ('W', 1), ('r', 1), ('d', 1)] 

5.排列組合

python內置的模塊itertools中集成了一些與迭代有關的函數,其中就有排列組合函數。

5.1 排列

排列函數permutations接收一個列表,返回這個列表內所有元素的全排列列表。 

  1. from itertools import permutations  
  2. print(list(permutations([1,2,3])))  
  3. # 輸出如下:  
  4. # [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 

5.2 組合

組合函數combinations接收兩個參數,第一個為一個需要進行組合的列表,第二個參數為一個正整數,代表從列表中抽取多少個元素進行組合,返回一個組合列表。 

  1. from itertools import combinations  
  2. print(list(combinations([1,2,3],2)))  
  3. # 輸出如下:  
  4. # [(1, 2), (1, 3), (2, 3)] 

6.小技巧

6.1 在python中分了可變類型和不可變類型,當函數傳參的時候:

  •  若是不可變類型如字符串,則傳遞參數的時候會深拷貝一份,在新的數據上修改并不改變原數據
  •  若是可變類型如列表,則傳遞參數的時候傳遞的是引用,屬于淺拷貝,在函數中對新列表進行操作會影響到原來的列表。

若是確實需要傳遞可變類型進入函數,則可以在函數內部第一行進行一次深拷貝如: 

  1. def test(num_list:list):  
  2.     # 進行深拷貝  
  3.     num_listnum_list = num_list[:] 

6.2 當刪除列表中的元素的時候,列表后面的元素會自動往前移動,導致出錯

例如,列表為[1,2,3,4,5,6],想要刪除列表中的偶數,如果直接找到一個偶數然后利用其索引刪除,如下代碼所示(錯誤示范),那么很抱歉,出問題了。 

  1. # 此處為錯誤示范!!!!!!!!  
  2. lst = [1, 2, 3, 4, 5, 6]  
  3. for i in range(len(lst)):  
  4.     if lst[i] % 2 == 0:  
  5.         lst.pop(i)  
  6. print(lst)  
  7. # 上面這段代碼沒有輸出,因為報索引越界錯誤了。 

下面的代碼才是正確示范: 

  1. lst = [1, 2, 3, 4, 5, 6]  
  2. lst = [i for i in lst if i % 2 != 0]  
  3. print(lst)  
  4. # 輸出如下:  
  5. # [1, 3, 5] 

若是需要更復雜的篩選手段,可以在if i%2 !=0那里更改成一個函數判斷,函數內部就實現篩選方法。

6.3 訪問字典元素要使用get方法

前文說過,普通的dict字典是沒有默認值的,所以這個時候如果直接利用中括號放置key來查找value的話是有可能會報錯的。

那么為了避免這種情況,在利用字典的key來取value的時候,需要利用字典的get函數。

get函數的第一個參數為key,第二個參數為可選(默認為None),當字典中找不到傳入的key的時候,會返回第二個參數所賦的值。

7.小結

以上是本人在使用python刷題的時候作的一些總結,若有不到位的地方請指出。

本文旨在為自己做一個文檔,同時也為大家提供一些便利。

關注我的公眾號【程序小員】,收貨一大波福利知識。

我是落陽,謝謝你的到訪。 

 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2010-03-22 10:27:28

Python常用模塊I

2016-10-21 14:35:52

Pythonwebget方法

2021-07-26 08:31:10

CPP算法容器技巧

2017-04-27 10:38:28

排序算法比較分析

2016-10-20 20:21:09

Python爬蟲技巧

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2023-04-27 09:13:20

排序算法數據結構

2021-03-16 10:12:24

python內置函數

2025-08-27 07:00:00

代碼Python內置函數

2010-03-03 13:12:56

Python圖像處理

2020-02-23 23:29:07

Python編程開發

2010-03-04 10:16:41

Python應用技巧

2020-07-31 08:07:54

Python開發數據庫

2025-07-21 07:20:11

2024-01-24 13:14:00

Python內置函數工具

2025-06-06 10:00:00

內置模塊python開發

2011-02-25 15:31:19

MySQL數據庫DBA

2023-11-24 11:11:08

Python數據庫

2020-06-04 10:49:53

Pandas字符串技巧

2011-07-01 16:05:22

SEO
點贊
收藏

51CTO技術棧公眾號

日韩视频一区二区在线观看| 亚洲午夜久久久| 91色琪琪电影亚洲精品久久| 亚洲成人生活片| 欧美三级午夜理伦三级小说| 欧美亚洲综合网| 国产成人在线小视频| 久久经典视频| 国产馆精品极品| 国产99久久久欧美黑人| 18岁成人毛片| 成人看的视频| 亚洲成成品网站| 最新免费av网址| 色综合亚洲图丝熟| 亚洲欧美区自拍先锋| 久久另类ts人妖一区二区| 国产精品无码一区二区桃花视频 | 日本成人三级电影| 一区二区三区在线观看欧美 | 久久久久99人妻一区二区三区 | 91免费看网站| 日韩xxx视频| 国产精品久久久久毛片大屁完整版 | 亚洲free性xxxx护士白浆| 国产精品视频123| 影音先锋亚洲电影| 久久精品成人动漫| 在线小视频你懂的| 日韩黄色网络| 精品国产在天天线2019| 亚洲一区二区福利视频| 向日葵视频成人app网址| 精品毛片网大全| 中文字幕日韩精品无码内射| 欧美激情二区| 日本一二三不卡| 日韩欧美一区二区视频在线播放 | 熟女少妇在线视频播放| 免费在线观看的电影网站| 亚洲人成在线播放网站岛国| 亚洲激情啪啪| 浮生影视网在线观看免费| www国产精品av| 国产一区二区三区高清| 亚洲爱爱综合网| 国产精品一区二区三区乱码| 91在线中文字幕| 国产精品人妻一区二区三区| 久色婷婷小香蕉久久| 国产精品久久久久免费a∨大胸 | 波多一区二区| 亚洲一区二区成人在线观看| 日本黄色片一级片| 92久久精品| 亚洲不卡在线观看| 亚洲熟妇无码一区二区三区导航| 国产高清在线a视频大全| 一区二区三区精品| 国产曰肥老太婆无遮挡| 电影k8一区二区三区久久| 亚洲午夜视频在线观看| 欧美黄网在线观看| 岛国在线视频网站| 欧美视频13p| 日本成人黄色网| 久草综合在线| 欧美日韩精品欧美日韩精品一 | 国产免费一区二区三区四区五区 | 国产精品久久久久久影视| 中文字幕av影视| 激情久久久久久久久久久久久久久久| 91夜夜揉人人捏人人添红杏| 丰满人妻一区二区三区无码av| 成人av免费网站| 日韩高清国产精品| 无遮挡动作视频在线观看免费入口 | 7777精品久久久大香线蕉| 成人免费黄色av| 欧美日韩直播| 色香阁99久久精品久久久| 2025国产精品自拍| 99成人在线| 国产精品日韩在线观看| 亚洲av综合一区| 国产高清在线观看免费不卡| 精品国产一区二区三区麻豆小说 | 97人妻精品一区二区三区软件| 国产一区二区伦理片| 国产在线视频欧美一区二区三区| 天天躁日日躁狠狠躁喷水| 久久久久国产精品人| 国产对白在线播放| 国产拍在线视频| 欧美精品日韩一本| 好吊一区二区三区视频| 日韩精品影视| 91国自产精品中文字幕亚洲| 中文字幕码精品视频网站| 国产成人av一区二区| 欧美日韩一区二 | 五月激情婷婷网| 国产精品无人区| 无码人妻少妇伦在线电影| 日韩av一级| 精品国产制服丝袜高跟| 超碰97av在线| 亚洲欧美日韩国产一区二区| 91精品视频在线免费观看| 日本一级在线观看| 一区二区三区欧美久久| 北条麻妃av高潮尖叫在线观看| 一区二区三区四区视频免费观看| 国产亚洲视频在线| 国产精品久久久久久久妇| 国产麻豆日韩欧美久久| 日韩av一级大片| 美女露胸视频在线观看| 91精品国产麻豆| 久久精品色妇熟妇丰满人妻| 国产日韩欧美一区| 俄罗斯精品一区二区| 黄色在线免费| 精品视频1区2区| av女人的天堂| 国产精品亚洲欧美| 国产精品三区www17con| 91一区二区三区在线| 欧美四级电影网| 午夜理伦三级做爰电影| 亚洲一级高清| 99热最新在线| 手机av免费在线| 欧美一级久久久久久久大片| 亚洲不卡的av| 蜜桃av一区二区三区电影| 日本不卡在线观看| 日韩不卡免费高清视频| 亚洲女成人图区| 激情五月少妇a| 国产成人aaa| 欧美黄网在线观看| 亚洲成人黄色| 久久久视频在线| 色呦呦中文字幕| 亚洲成av人片在线| 成人免费av片| 日韩精品一区第一页| 日本一区高清在线视频| 97久久香蕉国产线看观看| 日韩麻豆第一页| 中文字幕在线播| 国产亚洲欧美日韩日本| mm1313亚洲国产精品无码试看| 一区三区在线欧| 国产精品久久久久一区二区| 国产系列在线观看| 欧美日韩成人综合天天影院| 伊人久久久久久久久久久久久久| 激情综合一区二区三区| 四虎4hu永久免费入口| 亚洲精品在线播放| 97视频免费看| 韩国三级在线观看久| 欧美日本在线一区| 欧美另类视频在线观看| 99久久精品久久久久久清纯| 成人观看免费完整观看| 日韩理论片av| 91久久极品少妇xxxxⅹ软件| av毛片午夜不卡高**水| 亚洲人av在线影院| 136福利视频导航| 夜色激情一区二区| 国产激情在线免费观看| 久久99最新地址| 成人av在线播放观看| 免费看成人哺乳视频网站| 国产精品主播视频| 国内小视频在线看| 亚洲新中文字幕| 国产黄色免费大片| 欧美日韩在线视频观看| 极品美妇后花庭翘臀娇吟小说| 国产成人av资源| 五月婷婷狠狠操| 欧美日韩网站| 视频一区三区| 91精品尤物| 国产精品久久久久久影视| 天天干在线视频论坛| 亚洲欧洲日韩国产| www香蕉视频| 欧美在线高清视频| 久久精品国产av一区二区三区| 久久久久久久久久看片| 日本女人性视频| 日韩av一级片| 国产h视频在线播放| 国产精品videosex性欧美| 精品一区二区三区视频日产| www 久久久| 日韩免费高清在线观看| 成人影院在线播放| 日韩在线观看高清| 欧美日韩激情视频一区二区三区| 欧美一区二区三区视频在线观看| 无码免费一区二区三区| 亚洲午夜免费福利视频| 国产在线观看免费视频软件| 91丨porny丨中文| 91大神免费观看| 日本不卡一区二区三区高清视频| 青青草国产精品视频| 欧美大片一区| 一区二区三区av| 国精一区二区| 免费国产在线精品一区二区三区| 国产一区二区三区精品在线观看| 国产精品都在这里| 伊人久久av| 91国内产香蕉| av剧情在线观看| 久久久久久久香蕉网| 超碰caoporn久久| 日韩在线欧美在线| av电影在线观看| 一本色道久久88综合日韩精品| 婷婷婷国产在线视频| 精品成人一区二区| 成人激情四射网| 欧美不卡激情三级在线观看| 国产免费一区二区三区免费视频| 欧美日韩一级片网站| 91porny九色| 91成人在线免费观看| 97人妻一区二区精品视频| 日韩欧美在线视频| 亚洲天堂一区在线| 欧美性xxxxx极品娇小| 亚洲欧美偷拍视频| 日韩欧美成人免费视频| 在线视频一区二区三区四区| 粉嫩老牛aⅴ一区二区三区| 久久久久久久久久免费视频| 精品国产91久久久久久老师| 在线观看免费国产视频| 日韩欧美高清视频| 黄色在线视频网址| 欧美日韩亚洲国产综合| 亚洲永久精品视频| 91麻豆精品国产91久久久资源速度 | 7777精品伊人久久久大香线蕉的 | 久久久久久久久久久久久久av| 天天操天天干天天综合网| 91蜜桃视频在线观看| 狠狠色香婷婷久久亚洲精品| 天堂网免费视频| 欧美男男青年gay1069videost| av中文字幕观看| 精品成人私密视频| 国产综合在线观看| 日韩亚洲精品电影| 亚洲91av| 日本亚洲欧美成人| 福利一区二区免费视频| 亚洲999一在线观看www| 卡一精品卡二卡三网站乱码| 欧美激情论坛| 亚洲天天影视网| 国产美女主播在线播放| 日本不卡视频在线| 亚洲丝袜在线观看| 91色在线porny| 成人无码精品1区2区3区免费看| 亚洲男女毛片无遮挡| 久久不卡免费视频| 欧美日本精品一区二区三区| 性欧美18一19性猛交| 亚洲毛片在线看| 黄色av电影在线观看| 98精品国产高清在线xxxx天堂| 成人涩涩视频| 亚洲xxxx在线| 在线看成人短视频| 国产人妻互换一区二区| 99热精品在线观看| 亚洲欧美aaa| 91网上在线视频| 老司机成人免费视频| 日韩欧美成人区| 亚洲精品一级片| 国产一区二区美女视频| 男插女视频久久久| 成人黄色生活片| 西瓜成人精品人成网站| 中文字幕一区二区三区四区五区六区| 国产亚洲成人一区| 婷婷中文字幕在线观看| 久久久国际精品| 久久精品久久精品久久| 欧美日韩国产美| 久久久久久久影视| 久久久久久久久国产精品| 欧美日韩卡一| 欧美亚洲免费高清在线观看 | 久久久人成影片一区二区三区观看| 日韩精选视频| 精品欧美日韩| 亚洲高清免费| 久久精品一二三四| 欧美激情一区二区三区在线| 国产三级av片| 精品国产99国产精品| www国产在线观看| 国产精品最新在线观看| 国产调教一区二区三区| 熟女少妇在线视频播放| 成人污视频在线观看| 疯狂撞击丝袜人妻| 欧美视频在线观看一区二区| 三区在线视频| 午夜精品一区二区三区在线| 少妇精品在线| 亚洲高潮无码久久| 看片网站欧美日韩| 成年人视频软件| 欧美中文字幕久久| 激情小说 在线视频| 欧美在线激情视频| 日韩有码中文字幕在线| 国产午夜大地久久| 99久久精品免费看国产免费软件| 欧美成人精品欧美一级私黄| 欧美一区二区福利在线| 在线观看h网| 91传媒视频在线观看| 亚洲色图网站| 久久久国产精品久久久| 亚洲在线免费播放| xxxx国产精品| 国外成人在线直播| 欧美电影完整版在线观看| 欧日韩免费视频| 91视视频在线观看入口直接观看www | 永久久久久久久| 日韩欧美国产综合| 国产丝袜在线观看视频| 国产精品一区二区三区不卡| 99成人在线| 69视频在线观看免费| 色成年激情久久综合| av网页在线| 成人亚洲综合色就1024| 亚洲欧美一区在线| 韩国无码一区二区三区精品| 一本大道久久a久久精二百| 成人综合影院| 666精品在线| 怡红院精品视频在线观看极品| 亚洲国产欧美视频| 欧美日韩一区二区在线观看视频 | 97在线看福利| 精品一区av| 久久出品必属精品| 亚洲午夜av在线| 美女做暖暖视频免费在线观看全部网址91| 国产不卡av在线免费观看| 欧美国产美女| 黄色性视频网站| 日本道免费精品一区二区三区| 欧美性天天影视| 国产伦精品一区二区三毛| 久久精品男女| 午夜爱爱毛片xxxx视频免费看| 精品国免费一区二区三区| 午夜欧美巨大性欧美巨大| 中文字幕99| 久久综合久久鬼色中文字| 一区二区自拍偷拍| 欧美激情综合亚洲一二区| 啄木系列成人av电影| 欧美性受xxxxxx黑人xyx性爽| 亚洲成人一区在线| 欧美激情免费| 麻豆成人小视频| 国产麻豆一精品一av一免费| 日韩不卡在线播放| 美女视频久久黄| 在线看成人短视频| 中文字幕永久免费| 欧美在线短视频| 美女av在线免费看| 无码人妻aⅴ一区二区三区日本| 91片在线免费观看| 精品国产无码一区二区| 国产成人久久久精品一区| 影音先锋久久久| 国产精品视频一区二区三 | 午夜精品一区二区三级视频|