Python 基礎數據類型補充以及編碼

      網友投稿 845 2022-05-29

      一. 基礎數據類型補充內容

      字符串咱們之前已經講了一些非常重要的方法,剩下還有一些方法雖然不是那么重要,但是也算是比較常用,在此給大家在補充一些,需要大家盡量記住。

      #?capitalize,swapcase,title name?=?"hello?woRld?XiaoXiao" print(name.capitalize())??#?首字母大寫 print(name.swapcase())??#?大小寫翻轉 msg?=?'this?is?shenzhen' print(msg.title())??#?每個單詞的首字母大寫 #?內同居中,總長度,空白處填充 a1?=?"??how?are?you!" ret2?=?a1.center(20,?"*") print(ret2) #?尋找字符串中的元素是否存在 str4?=?"you?are?don't?is?lea!" ret3?=?str4.find("don't",?0,?13) print(ret3)??#?返回的找到的元素的索引,如果找不到返回-1 ret4?=?str4.index("don't",?0,?13) print(ret4)??#?返回的找到的元素的索引,找不到報錯。

      python中元組有一個特性,元組中如果只含有一個元素且沒有逗號,則該元組不是元組,與該元素數據類型一致,如果有逗號,那么它是元組。

      tu?=?(8) print(tu,?type(tu))??#?8? tu1?=?('yuchuan') print(tu1,?type(tu1))??#?'yuchuan'? tu2?=?([1,?2,?3]) print(tu2,?type(tu2))??#?[1,?2,?3]? tu?=?(1,) print(tu,?type(tu))??#?(1,)? tu1?=?('yuchuanduan',) print(tu1,?type(tu1))??#?('yuchuanduan',)? tu2?=?([1,?2,?3],) print(tu2,?type(tu2))??#?([1,?2,?3],)?

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py 8? yuchuan? [1,?2,?3]? (1,)? ('yuchuanduan',)? ([1,?2,?3],)? Process?finished?with?exit?code?0

      元組也有一些其他的方法:

      index:通過元素找索引(可切片),找到第一個元素就返回,找不到該元素即報錯。

      tu?=?('皇帝',?[1,?2,?3,?8,?],?'lao',?'嫦娥') print(tu.index('皇帝')) print(tu.index('皇后'))

      結果:

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py Traceback?(most?recent?call?last): 0 ??File?"/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py",?line?55,?in? ????print(tu.index('皇后')) ValueError:?tuple.index(x):?x?not?in?tuple Process?finished?with?exit?code?1

      count:?獲取某元素在列表中出現的次數

      tu?=?("于傳段",?"于傳段",?"于傳段",?"于傳段",?"麗麗",?"華華",) print(tu.count("于傳段"))??#?4

      列表的其他操作方法:

      count(數)(方法統計某個元素在列表中出現的次數)。

      str1?=?["q",?"w",?"q",?"q",?"q",?"r",?"t",?"y"] print(str1.count("q"))??#?4

      index(方法用于從列表中找出某個值第一個匹配項的索引位置)

      str1?=?["q",?"w",?"r",?"t",?"y"] print(str1.index("t")) print(str1.index("p"))

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py 0 Traceback?(most?recent?call?last): ??File?"/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py",?line?69,?in? ????print(str1.index("p")) ValueError:?'p'?is?not?in?list Process?finished?with?exit?code?1

      使用index的方法找列表的元素,如果有,返回元素的索引位置,如果沒有則會報錯。

      sort (方法用于在原位置對列表進行排序)。

      reverse (方法將列表中的元素反向存放)。

      list1?=?[2,?1,?3,?4,?5,?8,?42,?11] list1.sort()??#?他沒有返回值,所以只能打印a print(list1) list1.reverse()??#?他也沒有返回值,所以只能打印a print(list1)

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py [1,?2,?3,?4,?5,?8,?11,?42] [42,?11,?8,?5,?4,?3,?2,?1] Process?finished?with?exit?code?0

      列表也可以相加與整數相乘

      list1?=?[1,?2,?3,?5,?6,?8,?9] list2?=?[4,?5,?6,?8,?7] print(list1?+?list2) print(list1?*?3)

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py [1,?2,?3,?5,?6,?8,?9,?4,?5,?6,?8,?7] [1,?2,?3,?5,?6,?8,?9,?1,?2,?3,?5,?6,?8,?9,?1,?2,?3,?5,?6,?8,?9] Process?finished?with?exit?code?0

      循環列表,改變列表大小的問題

      先不著急,說這個問題,先做一道小題:

      有列表l1, l1 = [11, 22, 33, 44, 55],請把索引為奇數對應的元素刪除(不能一個一個刪除,此l1只是舉個例子,里面的元素不定)。

      有人說這個還不簡單么?我循環列表,然后進行判斷,只要他的索引為奇數,我就刪除。OK,你可以照著這個思路去做。

      那么根據題意,這個題最終的結果應該是:l1 = [11, 33, 55],但是你得到的結果卻是: l1 = [11, 33, 44] 為什么不對呢???

      用這個進行舉例:當你循環到22時,你將列表中的22刪除了,但是你帶來的影響是:33,44,55都會往前進一位,他們的索引由原來的2,3,4變成了1,2,3 所以你在往下進行循環時,就會發現,額........完全不對了。

      那這個怎么解決呢?有三種解決方式:

      直接刪除

      list1?=?[1,?2,?3,?5,?6,?8,?9] index?=?0 for?i?in?list1: ????if?index?%?2?!=?0: ????????list1.remove(i) ????index?+=?1 print(list1)

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py [1,?3,?5,?8,?9] Process?finished?with?exit?code?0

      倒敘刪除

      list1?=?[1,?2,?3,?5,?6,?8,?9] index?=?0 for?i?in?list1[::-1]: ????if?index?%?2?!=?0: ????????list1.remove(i) ????index?+=?1 print(list1)

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py [1,?3,?6,?9] Process?finished?with?exit?code?0

      所以,我們要總結一下:

      在循環一個列表時的過程中,如果你要改變列表的大?。ㄔ黾又担蛘邉h除值),那么結果很可能會出錯或者報錯。

      首先是字典的增刪改查有幾個方法需要給大家講解一下:

      #?popitem?3.5版本之前,popitem為隨機刪除,3.6之后為刪除最后一個,有返回值 dic?=?{'name':?'于傳',?'age':?28} ret?=?dic.popitem() print(ret,?dic) #?update dic?=?{'name':?'華英',?'age':?18} dic.update(sex='女',?height=165) print(dic) dic?=?{'name':?'華英',?'age':?18} dic.update([(1,?'a'),?(2,?'b'),?(3,?'c'),?(4,?'d')]) print(dic) dic1?=?{"name":?"lili",?"age":?19,?"sex":?"male"} dic2?=?{"name":?"xiaoqiaoying",?"weight":?55} dic1.update(dic2) print(dic1) print(dic2) #?字典增刪改查的補充

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py ('age',?28)?{'name':?'于傳'} {'name':?'華英',?'age':?18,?'sex':?'女',?'height':?165} {'name':?'華英',?'age':?18,?1:?'a',?2:?'b',?3:?'c',?4:?'d'} {'name':?'xiaoqiaoying',?'age':?19,?'sex':?'male',?'weight':?55} {'name':?'xiaoqiaoying',?'weight':?55} Process?finished?with?exit?code?0

      fromkeys:創建一個字典:字典的所有鍵來自一個可迭代對象,字典的值使用同一個值。

      dic?=?dict.fromkeys('hello',?'于傳') print(dic) dic?=?dict.fromkeys([1,?2,?3,?4,?5],?'華英') print(dic) #?這里有一個坑,就是如果通過fromkeys得到的字典的值為可變的數據類型,那么你的小心了。 dic?=?dict.fromkeys([1,?2,?3],?[]) dic[1].append(666) print(id(dic[1]),?id(dic[2]),?id(dic[3])) print(dic)

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py {'h':?'于傳',?'e':?'于傳',?'l':?'于傳',?'o':?'于傳'} {1:?'華英',?2:?'華英',?3:?'華英',?4:?'華英',?5:?'華英'} 140313081891656?140313081891656?140313081891656 {1:?[666],?2:?[666],?3:?[666]} Process?finished?with?exit?code?0

      循環字典,改變字典大小的問題

      來,先來研究一個小題,有如下字典:

      dic = {'k1':'于傳','k2':'華英','k3': '肖肖', 'age': 18} 請將字典中所有鍵帶k元素的鍵值對刪除。那么拿到這個題,有人說我一個一個刪除,這是不行的,因為這個字典只是舉個例子,里面的元素不確定,所以你要怎么樣?你要遍歷所有的鍵,符合的刪除,對吧? 嗯,終于上套了,哦不,上道了,請開始你的表演。

      dic?=?{'k1':?'于傳',?'k2':?'華英',?'k3':?'肖肖',?'age':?18} for?item?in?dic: ????if?'k'?in?item: ????????del?dic[item] print(dic)

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py Traceback?(most?recent?call?last): ??File?"/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py",?line?149,?in? ????for?item?in?dic: RuntimeError:?dictionary?changed?size?during?iteration Process?finished?with?exit?code?1 翻譯過來是:字典在循環迭代時,改變了大小。

      這是什么意思? 他的意思很簡單,你的字典在循環時,不要改變字典的大小,只要改變大小,就會報錯!那么怎么解決???

      所以說,他和列表差不多,只不過比列表更暴力一些,對其進行總結就是:

      在循環一個字典的過程中,不要改變字典的大?。ㄔ觯瑒h字典的元素),這樣會直接報錯。

      python基礎數據類型所有數據最全面詳細的方法匯總

      二. 數據類型間的轉換問題

      咱們現在學過的數據類型有:int bool str list tuple dict set ,這些數據類型之間都存在著相互轉換的問題,有些轉換是非常重要的,那么有些轉換則基本不用,那么接下來我們學習一下比較重要的數據的轉換問題。

      int bool? str 三者轉換

      #?int?--->?bool i?=?1000 print(bool(i))??#?True??#?非零即True i1?=?0 print(bool(i1))??#?False?零即False #?bool?--->?int t?=?True print(int(t))??#?1??True?-->?1 t?=?False print(int(t))??#?0??False?-->?0 #?int?--->?str i1?=?200 print(str(i1))??#?'200' #?str?--->?int??#?全部由數字組成的字符串才可以轉化成數字 s1?=?'80' print(int(s1))??#?80 #?str?--->?bool s1?=?'于傳' s2?=?'' print(bool(s1))??#?True?非空即True print(bool(s2))??#?False #?bool?--->?str t1?=?True print(str(True))??#?'True'

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py True False 1 0 200 80 True False True Process?finished?with?exit?code?0

      str list 兩者轉換

      #?str?--->?list s1?=?'華英?于傳?肖肖' print(s1.split()) #?list?--->?str??#?前提?list?里面所有的元素必須是字符串類型才可以 l1?=?['于傳',?'華英',?'肖肖'] print('?'.join(l1))

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py ['華英',?'于傳',?'肖肖'] 于傳?華英?肖肖 Process?finished?with?exit?code?0

      list set 兩者轉換

      #?list?--->?set lst1?=?[1,?2,?3,?4,?5,?7,?8,?9] print(set(lst1)) #?set?--->?list set1?=?{1,?2,?3,?3,?66,?53,?87} print(list(set1))

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py {1,?2,?3,?4,?5,?7,?8,?9} [1,?2,?3,?66,?53,?87] Process?finished?with?exit?code?0

      str bytes 兩者轉換

      #?str?--->?bytes s1?=?'于傳' print(s1.encode('utf-8')) #?bytes?--->?str b?=?b'\xe4\xba\x8e\xe4\xbc\xa0' print(b.decode('utf-8'))

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py b'\xe4\xba\x8e\xe4\xbc\xa0' 于傳 Process?finished?with?exit?code?0

      所有數據都可以轉化成bool值

      轉化成bool值為False的數據類型有: '',? 0,? (),? {},? [],? set(),? None

      剩下的一些數據類型也可以互相轉化,在這里我就不一一介紹了。

      三.基礎數據類型的總結

      按存儲空間的占用分(從低到高)

      數字 字符串 集合:無序,即無序則無存索引相關信息 元組:有序,需要存索引相關信息,不可變 列表:有序,需要存索引相關信息,可變,需要處理數據的增刪改 字典:有序,需要存key與value映射的相關信息,可變,需要處理數據的增刪改(3.6之后有序)

      按存值個數區分

      按可變不可變區分

      按訪問順序區分

      四. 編碼的進階

      前兩天咱們已經講了編碼,我相信大家對編碼有一定的了解了,那么,咱們先回顧一下:

      首先來說,編碼即是密碼本,編碼記錄的就是二進制與文字之間的對應關系,現存的編碼本有:

      ASCII碼:包含英文字母,數字,特殊字符與01010101對應關系。

      a? 01000001? 一個字符一個字節表示。

      GBK:只包含本國文字(以及英文字母,數字,特殊字符)與0101010對應關系。

      a? 01000001? ascii碼中的字符:一個字符一個字節表示。

      中 01001001 01000010? 中文:一個字符兩個字節表示。

      Unicode:包含全世界所有的文字與二進制0101001的對應關系。

      a? 01000001 01000010 01000011 00000001

      b? 01000001 01000010 01100011 00000001

      中 01001001 01000010 01100011 00000001

      UTF-8:包含全世界所有的文字與二進制0101001的對應關系(最少用8位一個字節表示一個字符)。

      a? ?01000001? ascii碼中的字符:一個字符一個字節表示。

      To 01000001 01000010? ?(歐洲文字:葡萄牙,西班牙等)一個字符兩個字節表示。

      中? 01001001 01000010 01100011? 亞洲文字;一個字符三個字節表示。

      簡單回顧完編碼之后,再給大家普及一些知識點:

      1. 在計算機內存中,統一使用Unicode編碼,當需要將數據保存到硬盤或者需要網絡傳輸的時候,就轉換為非Unicode編碼比如:UTF-8編碼。

      其實這個不用深入理解,他就是規定,舉個例子:用文件編輯器(word,wps,等)編輯文件的時候,從文件將你的數據(此時你的數據是非Unicode(可能是UTF-8,也可能是gbk,這個編碼取決于你的編輯器設置))字符被轉換為Unicode字符讀到內存里,進行相應的編輯,編輯完成后,保存的時候再把Unicode轉換為非Unicode(UTF-8,GBK 等)保存到文件。

      2. 不同編碼之間,不能直接互相識別。

      比如你的一個數據:‘老板沒毛病’是以utf-8的編碼方式編碼并發送給一個朋友,那么你發送的肯定是通過utf-8的編碼轉化成的二進制01010101,那么你的朋友接收到你發的這個數據,他如果想查看這個數據必須將01010101轉化成漢字,才可以查看,那么此時那也必須通過utf-8編碼反轉回去,如果要是通過gbk編碼反轉,那么這個內容可能會出現亂碼或者報錯。

      那么了解完這兩點之后,咱們開始進入編碼進階的最重要的內容。

      前提條件:python3x版本(python2x版本與這個不同)。

      主要用途:數據的存儲或者傳輸。

      剛才咱們也說過了,在計算機內存中,統一使用Unicode編碼,當需要將數據保存到硬盤或者需要網絡傳輸的時候,就轉換為非Unicode編碼比如:UTF-8編碼。

      咱們就以網絡傳輸為例:

      好那么接下來咱們繼續討論,首先先聲明一個知識點就是這里所說的'數據',這個數據,其實準確的說是以字符串(特殊的字符串)類型的數據。那么有同學就會問到,python中的數據類型很多,int bool list dict str等等,如果我想將一個列表數據通過網絡傳輸給小明同學,不行么? 確切的說不行,你必須將這個列表轉化成一個特殊的字符串類型,然后才可以傳輸出去,數據的存儲也是如此。

      那么你就清楚一些了,你想通過存儲或者網絡傳輸的數據是一個特殊的字符串類型,那么我就直接將這個字符串傳出去不就行了么?比如我這有一個數據:'今晚10點吃雞,大吉大利' 這不就是字符串類型么?我直接將這個數據通過網絡發送給小明不就可以了么?不行。這里你還沒有看清一個問題,就是特殊的字符串。為什么?

      那么這個解決方式是什么呢?

      那么這個bytes類型是個什么類型呢?其實他也是Python基礎數據類型之一:bytes類型。

      這個bytes類型與字符串類型,幾乎一模一樣,可以看看bytes類型的源碼,bytes類型可以用的操作方法與str相差無幾.

      class?bytes(object): ????""" ????bytes(iterable_of_ints)?->?bytes ????bytes(string,?encoding[,?errors])?->?bytes ????bytes(bytes_or_buffer)?->?immutable?copy?of?bytes_or_buffer ????bytes(int)?->?bytes?object?of?size?given?by?the?parameter?initialized?with?null?bytes ????bytes()?->?empty?bytes?object ???? ????Construct?an?immutable?array?of?bytes?from: ??????-?an?iterable?yielding?integers?in?range(256) ??????-?a?text?string?encoded?using?the?specified?encoding ??????-?any?object?implementing?the?buffer?API. ??????-?an?integer ????""" ????def?capitalize(self):?#?real?signature?unknown;?restored?from?__doc__ ????????""" ????????B.capitalize()?->?copy?of?B ???????? ????????Return?a?copy?of?B?with?only?its?first?character?capitalized?(ASCII) ????????and?the?rest?lower-cased. ????????""" ????????pass ????def?center(self,?width,?fillchar=None):?#?real?signature?unknown;?restored?from?__doc__ ????????""" ????????B.center(width[,?fillchar])?->?copy?of?B ???????? ????????Return?B?centered?in?a?string?of?length?width.??Padding?is ????????done?using?the?specified?fill?character?(default?is?a?space). ????????""" ????????pass ????...... bytes類型的源碼

      那么str與bytes類型到底有什么區別和聯系呢,接下來咱們以表格的形式給你做對比。

      英文: 'alex'

      中文: '中國'

      英文:b'alex'

      中文:b'\xe4\xb8\xad\xe5\x9b\xbd'

      字節文字對于ascii中的元素是可以直接顯示的,

      但是非ascii碼中的元素是以十六進制的形式表示的,不易看出。

      負責以二進制字節序列的形式記錄所需記錄的對象,

      至于該對象到底表示什么(比如到底是什么字符)

      則由相應的編碼格式解碼所決定。

      Python3中,bytes通常用于網絡數據傳輸、

      二進制圖片和文件的保存等等

      那么上面寫了這么多,咱們不用全部記住,對于某些知識點了解一下即可,但是對于有些知識點是需要大家理解的:

      bytes類型也稱作字節文本,他的主要用途就是網絡的數據傳輸,與數據存儲。那么有些同學肯定問,bytes類型既然與str差不多,而且操作方法也很相似,就是在字符串前面加個b不就行了,python為什么還要這兩個數據類型呢?我只用bytes不行么?

      如果你只用bytes開發,不方便。因為對于非ascii碼里面的文字來說,bytes只是顯示的是16進制。很不方便。

      str1?=?'于傳段' print(str1.encode("utf-8")) str1?=?b'\xe4\xba\x8e\xe4\xbc\xa0\xe6\xae\xb5'

      好,上面咱們對于bytes類型應該有了一個大致的了解,對str 與 bytes的對比也是有了對比的了解,那么咱們最終要解決的問題,現在可以解決了,那就是str與bytes類型的轉換的問題。

      如果你的str數據想要存儲到文件或者傳輸出去,那么直接是不可以的,上面我們已經圖示了,我們要將str數據轉化成bytes數據就可以了。

      str ----> bytes

      #?encode稱作編碼:將?str?轉化成?bytes類型 str1?=?'祖國' b1?=?str1.encode('utf-8')??#?轉化成utf-8的bytes類型 print(str1) print(b1) str1?=?'祖國' b1?=?str1.encode('gbk')??#?轉化成gbk的bytes類型 print(str1) print(b1)

      Python 基礎數據類型補充以及編碼

      結果

      /home/yuchuan/YuchuanData/PythonData/PythonProject/venv/bin/python?/home/yuchuan/YuchuanData/PythonData/PythonProject/python_fuction.py 祖國 b'\xe7\xa5\x96\xe5\x9b\xbd' 祖國 b'\xd7\xe6\xb9\xfa' Process?finished?with?exit?code?0

      bytes ---> str

      #?decode稱作解碼,?將?bytes?轉化成?str類型 b1?=?b'\xe7\xa5\x96\xe5\x9b\xbd' str1?=?b1.decode('utf-8') print(str1)??#?祖國

      那么這里還有一個最重要的,也是你們以后工作中經常遇到的讓人頭疼的問題,就是gbk編碼的數據,轉化成utf-8編碼的數據。有人說老師,我怎么有點蒙呢?這是什么? 來,捋一下,bytes類型他叫字節文本,他的編碼方式是非Unicode的編碼,非Unicode即可以是gbk,可以是UTF-8,可以是GB2312.....

      str1?=?"祖國" print(str1.encode('utf-8')) print(str1.encode('gbk')) b1?=?b'\xe7\xa5\x96\xe5\x9b\xbd'??#?這是utf-8編碼bytes類型的祖國 b2?=?b'\xd7\xe6\xb9\xfa'??#?這是gbk編碼bytes類型的祖國

      那么gbk編碼的bytes如何轉化成utf-8編碼的bytes呢?

      不同編碼之間,不能直接互相識別。

      上面我說了,不同編碼之間是不能直接互相是別的,這里說了不能直接,那就可以間接,如何間接呢? 現存世上的所有的編碼都和誰有關系呢? 都和萬國碼Unicode有關系,所以需要借助Unicode進行轉換。

      看下面的圖就行了!

      軟件開發 人工智能 python 云計算

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:手把手第一篇:寫出第一行 Hello World
      下一篇:數據基礎設施加速數字經濟,“河圖”引擎推進鯤鵬計算產業
      相關文章
      亚洲成a人片在线观看无码专区| 亚洲成Av人片乱码色午夜| 亚洲日韩精品射精日| 亚洲AV日韩精品一区二区三区| 亚洲精品成a人在线观看☆| 亚洲伊人久久大香线焦| 亚洲日本乱码一区二区在线二产线 | 亚洲日韩国产精品第一页一区| 国产精品久久久久久亚洲小说 | 亚洲日本va一区二区三区| 国产色在线|亚洲| 亚洲AV无码久久久久网站蜜桃| 亚洲国产精品成人精品小说| 亚洲国产精品综合久久久| 亚洲免费福利视频| 亚洲sss综合天堂久久久| 亚洲人成www在线播放| 亚洲一本到无码av中文字幕| 亚洲天然素人无码专区| 亚洲精品美女久久7777777| 亚洲AV成人无码网站| 成人亚洲综合天堂| 久久亚洲中文字幕精品一区| 亚洲人成中文字幕在线观看| 亚洲国产精品成人精品无码区| 国产AV无码专区亚洲A∨毛片| 亚洲AV无码精品色午夜果冻不卡| 亚洲av片劲爆在线观看| 1区1区3区4区产品亚洲| 亚洲三级中文字幕| 亚洲精品动漫免费二区| 亚洲国产精品13p| 亚洲熟妇中文字幕五十中出| 亚洲激情视频在线观看| 亚洲国产韩国一区二区| 亚洲午夜成人精品无码色欲| 国产成人综合亚洲| 在线精品亚洲一区二区小说| 亚洲AV综合色一区二区三区| 亚洲理论片中文字幕电影| 在线观看亚洲AV每日更新无码|