国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

python基礎(chǔ)篇大合集,進(jìn)程、裝飾器、列表詳解篇!

共 13317字,需瀏覽 27分鐘

 ·

2021-10-19 00:45

  • 進(jìn)程以及狀態(tài)

  • 1. 進(jìn)程

  • 2. 進(jìn)程的狀態(tài)

  • 進(jìn)程的創(chuàng)建-multiprocessing

  • 1. 創(chuàng)建進(jìn)程

  • 2. 進(jìn)程pid

  • 3. Process語法結(jié)構(gòu)如下

  • 4. 給子進(jìn)程指定的函數(shù)傳遞參數(shù)

  • 5. 進(jìn)程間不共享全局變量

  • 進(jìn)程和線程對比

  • 功能

  • 定義的不同

  • 區(qū)別

  • 優(yōu)缺點(diǎn)

進(jìn)程以及狀態(tài)

1. 進(jìn)程

程序:例如xxx.py這是程序,是一個靜態(tài)的

進(jìn)程:一個程序運(yùn)行起來后,代碼+用到的資源 稱之為進(jìn)程,它是操作系統(tǒng)分配資源的基本單元。

不僅可以通過線程完成多任務(wù),進(jìn)程也是可以的

2. 進(jìn)程的狀態(tài)

工作中,任務(wù)數(shù)往往大于cpu的核數(shù),即一定有一些任務(wù)正在執(zhí)行,而另外一些任務(wù)在等待cpu進(jìn)行執(zhí)行,因此導(dǎo)致了有了不同的狀態(tài)。


  • 就緒態(tài):運(yùn)行的條件都已經(jīng)滿足,正在等在cpu執(zhí)行

  • 執(zhí)行態(tài):cpu正在執(zhí)行其功能

  • 等待態(tài):等待某些條件滿足,例如一個程序sleep了,此時就處于等待態(tài)

進(jìn)程的創(chuàng)建-multiprocessing

multiprocessing模塊就是跨平臺版本的多進(jìn)程模塊,提供了一個Process類來代表一個進(jìn)程對象,這個對象可以理解為是一個獨(dú)立的進(jìn)程,可以執(zhí)行另外的事情

1. 創(chuàng)建進(jìn)程

import multiprocessing
import time
def test():
while True:
print("--test--")
time.sleep(1)
if __name__ == "__main__":
p = multiprocessing.Process(target=test)
p.start()
while True:
print("--main--")
time.sleep(1)

說明:

  • 創(chuàng)建子進(jìn)程時,只需要傳入一個執(zhí)行函數(shù)和函數(shù)的參數(shù),創(chuàng)建一個Process實(shí)例,用start()方法啟動

2. 進(jìn)程pid

import multiprocessing
import os
def test():
print("子進(jìn)程在運(yùn)行,pid=%d" % (os.getpid()))
print("子進(jìn)程運(yùn)行結(jié)束")
if __name__ == "__main__":
print("父進(jìn)程在運(yùn)行,pid=%d" % (os.getpid()))
p = multiprocessing.Process(target=test)
p.start()

通過os中的getpid()方法能獲取到當(dāng)前運(yùn)行進(jìn)程的id。

3. Process語法結(jié)構(gòu)如下

Process([group [, target [, name [, args [, kwargs]]]]])

  • target:如果傳遞了函數(shù)的引用,可以認(rèn)為這個子進(jìn)程就執(zhí)行這里的代碼

  • args:給target指定的函數(shù)傳遞的參數(shù),以元組的方式傳遞

  • kwargs:給target指定的函數(shù)傳遞命名參數(shù)

  • name:給進(jìn)程設(shè)定一個名字,可以不設(shè)定

  • group:指定進(jìn)程組,大多數(shù)情況下用不到

Process創(chuàng)建的實(shí)例對象的常用方法:

  • start():啟動子進(jìn)程實(shí)例(創(chuàng)建子進(jìn)程)

  • is_alive():判斷進(jìn)程子進(jìn)程是否還在活著

  • join([timeout]):是否等待子進(jìn)程執(zhí)行結(jié)束,或等待多少秒

  • terminate():不管任務(wù)是否完成,立即終止子進(jìn)程

Process創(chuàng)建的實(shí)例對象的常用屬性:

  • name:當(dāng)前進(jìn)程的別名,默認(rèn)為Process-N,N為從1開始遞增的整數(shù)

  • pid:當(dāng)前進(jìn)程的pid(進(jìn)程號)

4. 給子進(jìn)程指定的函數(shù)傳遞參數(shù)

import multiprocessing
import os
import time
def test(name, **kwargs):

for i in range(10):
print("子進(jìn)程在運(yùn)行,name=%s, pid=%d" % (name, os.getpid()))
print(kwargs)
time.sleep(0.2)
if __name__ == "__main__":
p = multiprocessing.Process(target=test, args=("zhangsan",), kwargs={"xxoo": 666})
p.start()

time.sleep(1)

p.terminate()
p.join()

運(yùn)行結(jié)果:

子進(jìn)程在運(yùn)行,name=zhangsan, pid=37751
{'xxoo': 666}
子進(jìn)程在運(yùn)行,name=zhangsan, pid=37751
{'xxoo': 666}
子進(jìn)程在運(yùn)行,name=zhangsan, pid=37751
{'xxoo': 666}
子進(jìn)程在運(yùn)行,name=zhangsan, pid=37751
{'xxoo': 666}
子進(jìn)程在運(yùn)行,name=zhangsan, pid=37751
{'xxoo': 666}

5. 進(jìn)程間不共享全局變量

import multiprocessing
import os
import time
g_nums = [11, 33]
def test1():
"""子進(jìn)程要執(zhí)行的代碼"""
print("in test1, pid=%d, g_nums=%s", (os.getpid(), g_nums))
for i in range(4):
g_nums.append(i)
time.sleep(1)
print("in test1, pid=%d, g_nums=%s", (os.getpid(), g_nums))
def test2():
"""子進(jìn)程要執(zhí)行的代碼"""
print("in test2, pid=%d, g_nums=%s", (os.getpid(), g_nums))
if __name__ == "__main__":
p1 = multiprocessing.Process(target=test1)
p1.start()
p1.join()
p2 = multiprocessing.Process(target=test2)
p2.start()

運(yùn)行結(jié)果:

in test1, pid=%d, g_nums=%s (37947, [11, 33])
in test1, pid=%d, g_nums=%s (37947, [11, 33, 0])
in test1, pid=%d, g_nums=%s (37947, [11, 33, 0, 1])
in test1, pid=%d, g_nums=%s (37947, [11, 33, 0, 1, 2])
in test1, pid=%d, g_nums=%s (37947, [11, 33, 0, 1, 2, 3])
in test2, pid=%d, g_nums=%s (37948, [11, 33])

進(jìn)程和線程對比

功能

  • 進(jìn)程,能夠完成多任務(wù),比如 在一臺電腦上能夠同時運(yùn)行多個QQ

  • 線程,能夠完成多任務(wù),比如 一個QQ中的多個聊天窗口

定義的不同

  • 進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位.

  • 線程是進(jìn)程的一個實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源.

區(qū)別

  • 一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程.

  • 線程的劃分尺度小于進(jìn)程(資源比進(jìn)程少),使得多線程程序的并發(fā)性高。

  • 進(jìn)程在執(zhí)行過程中擁有獨(dú)立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率

  • 線程不能夠獨(dú)立執(zhí)行,必須依存在進(jìn)程中

  • 可以將進(jìn)程理解為工廠中的一條流水線,而其中的線程就是這個流水線上的工人

優(yōu)缺點(diǎn)

線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開銷小,但不利于資源的管理和保護(hù);而進(jìn)程正相反。

開閉原則:

在不修改原函數(shù)及其調(diào)用方式的情況下對原函數(shù)功能進(jìn)行擴(kuò)展

對代碼的修改是封閉

不能修改被裝飾的函數(shù)的源代碼

不能修改被裝飾的函數(shù)的調(diào)用方式

用函數(shù)的方式設(shè)想一下游戲里用槍的場景

 1 def game():
2 print('壓子彈')
3 print('槍上膛')
4 print('發(fā)射子彈')
5 game()
6 game()
7 game()
8
9 此時需要給槍增加一個瞄準(zhǔn)鏡,比如狙擊遠(yuǎn)程目標(biāo)時候需要加,狙擊近程目標(biāo)不用加
10 此時上邊的代碼就變成了現(xiàn)在的代碼
11
12 def sight():
13 print('專業(yè)狙擊瞄準(zhǔn)鏡')
14 game()
15 sight()
16 sight()
17 sight()
18 此時的設(shè)計就不符合開閉原則(因?yàn)樾薷牧嗽a及調(diào)用名稱)

裝飾器(python里面的動態(tài)代理)

本質(zhì): 是一個閉包

組成: 函數(shù)+實(shí)參高階函數(shù)+返回值高階函數(shù)+嵌套函數(shù)+語法糖 = 裝飾器

存在的意義: 在不破壞原有函數(shù)和原有函數(shù)調(diào)用的基礎(chǔ)上,給函數(shù)添加新的功能

通用裝飾器寫法:

 1 def warpper(fn): # fn是目標(biāo)函數(shù)相當(dāng)于func
2 def inner(*args,**kwargs): # 為目標(biāo)函數(shù)的傳參
3 '''在執(zhí)行目標(biāo)函數(shù)之前操作'''
4 ret = fn(*args,**kwargs) # 調(diào)用目標(biāo)函數(shù),ret是目標(biāo)函數(shù)的返回值
5 '''在執(zhí)行目標(biāo)函數(shù)之后操作'''
6 return ret # 把目標(biāo)函數(shù)返回值返回,保證函數(shù)正常的結(jié)束
7 return inner
8
9 #語法糖
10 @warpper #相當(dāng)于func = warpper(func)
11 def func():
12 pass
13 func() #此時就是執(zhí)行的inner函數(shù)

上邊的場景用裝飾器修改后

 1 方式一
2 def game():
3 print('壓子彈')
4 print('槍上膛')
5 print('發(fā)射子彈')
6
7 def sight(fn): # fn接收的是一個函數(shù)
8 def inner():
9 print('安裝專業(yè)狙擊瞄準(zhǔn)鏡')
10 fn() #調(diào)用傳遞進(jìn)來的函數(shù)
11 print('跑路')
12 return inner #返回函數(shù)地址
13
14 game = sight(game) #傳遞game函數(shù)到sight函數(shù)中
15 game()
16
17 執(zhí)行步驟
18 第一步定義兩個函數(shù)game()為普通函數(shù),sight()為裝飾器函數(shù)
19 第二步定義game = sight(game)等于把game函數(shù)當(dāng)做參數(shù)傳遞給sight(fn)裝飾器函數(shù)fn形參
20 第三步執(zhí)行sight(fn),fn在形參位置,相當(dāng)于下邊函數(shù)game()傳參過來等于fn
21 第四步執(zhí)行inner函數(shù),然后return把inner函數(shù)內(nèi)存地址當(dāng)做返回值返回給sight(game)
22 第五步然后執(zhí)行g(shù)ame(),相當(dāng)于執(zhí)行inner函數(shù)
23 第六步,執(zhí)行inner函數(shù),打印'狙擊鏡',執(zhí)行fn()形參,由于fn形參等于game函數(shù),所以執(zhí)行g(shù)ame()函數(shù),打印'壓子彈','上膛','發(fā)射子彈'
24 第七步打印'跑路'
25 第八步把打印的結(jié)果返回給game()
26
27 方式二
28 def sight(fn): # fn接收的是一個函數(shù)
29 def inner():
30 print('安裝專業(yè)狙擊瞄準(zhǔn)鏡')
31 fn() #調(diào)用傳遞進(jìn)來的函數(shù)
32 print('跑路')
33 return inner #返回函數(shù)地址
34
35 @sight #相當(dāng)于game = sight(game)
36 def game():
37 print('壓子彈')
38 print('槍上膛')
39 print('發(fā)射子彈')
40 game()
41
42 執(zhí)行步驟
43 第一步執(zhí)行sight(fn)函數(shù)
44 第二步執(zhí)行@sight,相當(dāng)于把把game函數(shù)與sight裝飾器做關(guān)聯(lián)
45 第三步把game函數(shù)當(dāng)做參數(shù)傳遞給sight(fn)裝飾器函數(shù)fn形參
46 第四步執(zhí)行inner函數(shù),然后return把inner函數(shù)內(nèi)存地址當(dāng)做返回值返回給@sight
47 第五步執(zhí)行g(shù)ame()相當(dāng)相當(dāng)于執(zhí)行inner()函數(shù),因?yàn)锧sight相當(dāng)于game = sight(game)
48 第六步打印'瞄準(zhǔn)鏡
49 第七步執(zhí)行fn函數(shù),因?yàn)閒n等于game函數(shù),所以會執(zhí)行g(shù)ame()函數(shù),打印'壓子彈','上膛','發(fā)射子彈'.fn()函數(shù)執(zhí)行完畢
50 第八步打印'跑路'
51 第九步然后把所有打印的結(jié)果返回給game()
52
53 結(jié)果
54 安裝專業(yè)狙擊瞄準(zhǔn)鏡
55 壓子彈
56 槍上膛
57 發(fā)射子彈
58 跑路

一個簡單的裝飾器實(shí)現(xiàn)

 1 def warpper(fn):
2 def inner():
3 print('每次執(zhí)行被裝飾函數(shù)之前都要先經(jīng)過這里')
4 fn()
5 return inner
6 @warpper
7 def func():
8 print('執(zhí)行了func函數(shù)')
9 func()
10
11 結(jié)果
12 每次執(zhí)行被裝飾函數(shù)之前都要先經(jīng)過這里
13 執(zhí)行了func函數(shù)

帶有一個或多個參數(shù)的裝飾器

 1 def sight(fn): #fn等于調(diào)用game函數(shù)
2 def inner(*args,**kwargs): #接受到的是元組("bob",123)
3 print('開始游戲')
4 fn(*args,**kwargs) #接受到的所有參數(shù),打散傳遞給user,pwd
5 print('跑路')
6 return inner
7 @sight
8 def game(user,pwd):
9 print('登陸游戲用戶名密碼:',user,pwd)
10 print('壓子彈')
11 print('槍上膛')
12 print('發(fā)射子彈')
13 game('bob','123')
14 結(jié)果
15 開始游戲
16 登陸游戲用戶名密碼: bob 123
17 壓子彈
18 槍上膛
19 發(fā)射子彈
20 跑路

動態(tài)傳遞一個或多個參數(shù)給裝飾器

 1 def sight(fn): #調(diào)用game函數(shù)
2 def inner(*args,**kwargs): #接受到的是元組("bob",123)
3 print('開始游戲')
4 fn(*args,**kwargs) #接受到的所有參數(shù),打散傳遞給正常的參數(shù)
5 print('跑路')
6 return inner
7 @sight
8 def game(user,pwd):
9 print('登陸游戲用戶名密碼:',user,pwd)
10 print('壓子彈')
11 print('槍上膛')
12 print('發(fā)射子彈')
13 return '游戲展示完畢'
14 ret = game('bob','123') #傳遞了兩個參數(shù)給裝飾器sight
15 print(ret)
16
17 @sight
18 def car(qq):
19 print('登陸QQ號%s'%qq)
20 print('開始戰(zhàn)車游戲')
21 ret2 = car(110110) #傳遞了一個參數(shù)給裝飾器sight
22 print(ret2)
23 結(jié)果
24 開始游戲
25 登陸游戲用戶名密碼: bob 123
26 壓子彈
27 槍上膛
28 發(fā)射子彈
29 跑路
30 None
31 開始游戲
32 登陸QQ號110110
33 開始戰(zhàn)車游戲
34 跑路
35 None
36 你會發(fā)現(xiàn)這兩個函數(shù)執(zhí)行的返回值都為None,但是我game定義返回值了return '游戲展示完畢',卻沒給返回

裝飾器的返回值

 1 為什么我定義了返回值,但是返回值還是None呢,是因?yàn)槲壹词乖趃ame函數(shù)中定義了return '游戲展示完畢'
2 但是裝飾器里只有一個return inner定義返回值,但是這個返回值是返回的inner函數(shù)的內(nèi)存地址的,并不是inner
3 函數(shù)內(nèi)部的return所以默認(rèn)為None,所以應(yīng)該定義一個inner函數(shù)內(nèi)部的return返回值,而且也沒有接收返回值的變量,
4 所以要要設(shè)置ret = fn(*args,**kwargs)和return ret
5
6 def sight(fn): #調(diào)用game函數(shù)
7 def inner(*args,**kwargs): #接受到的是元組("bob",123)
8 print('開始游戲')
9 ret = fn(*args,**kwargs) #接受到的所有參數(shù),打散傳遞給正常的參數(shù)
10 print('跑路')
11 return ret
12 return inner
13 @sight
14 def game(user,pwd):
15 print('登陸游戲用戶名密碼:',user,pwd)
16 print('壓子彈')
17 print('槍上膛')
18 print('發(fā)射子彈')
19 return '游戲展示完畢'
20 ret = game('bob','123') #傳遞了兩個參數(shù)給裝飾器sight
21 print(ret)
22 結(jié)果
23 開始游戲
24 登陸游戲用戶名密碼: bob 123
25 壓子彈
26 槍上膛
27 發(fā)射子彈
28 跑路
29 游戲展示完畢
30
31
32 事例2
33 def wrapper_out(flag): #裝飾器本身的參數(shù)
34 def wrapper(fn): #目標(biāo)函數(shù)
35 def inner(*args,**kwargs): #目標(biāo)函數(shù)需要接受的參數(shù)
36 if flag == True:
37 print('找第三方問問價格行情')
38 ret = fn(*args,**kwargs)
39 print('買到裝備')
40 return ret
41 else:
42 ret = fn(*args,**kwargs)
43 return ret
44 return inner
45 return wrapper
46 #語法糖,@裝飾器
47 @wrapper_out(True)
48 def func(a,b): #被wrapper裝飾
49 print(a,b)
50 print('開黑')
51 return 'func返回值'
52 abc = func('我是參數(shù)1','我是參數(shù)2')
53 print(abc)
54 結(jié)果
55 找第三方問問價格行情
56 我是參數(shù)1 我是參數(shù)2
57 開黑
58 買到裝備
59 func返回值

多個裝飾器同用一個函數(shù)

 1 def wrapper1(fn):
2 def inner(*args,**kwargs):
3 print('wrapper1-1')
4 ret = fn(*args,**kwargs)
5 print('wrapper1-2')
6 return ret
7 return inner
8
9 def wrapper2(fn):
10 def inner(*args,**kwargs):
11 print('wrapper2-1')
12 ret = fn(*args,**kwargs)
13 print('wrapper2-2')
14 return ret
15 return inner
16
17 def wrapper3(fn):
18 def inner(*args,**kwargs):
19 print('wrapper3-1')
20 ret = fn(*args,**kwargs)
21 print('wrapper3-2')
22 return ret
23 return inner
24 @wrapper1
25 @wrapper2
26 @wrapper3
27 def func():
28 print('我是測試小白')
29 func()
30 結(jié)果
31 wrapper1-1
32 wrapper2-1
33 wrapper3-1
34 我是測試小白
35 wrapper3-2
36 wrapper2-2
37 wrapper1-2

python列表類型

分類: python

列表類型簡介

列表類型是一個容器,它里面可以存放任意數(shù)量、任意類型的數(shù)據(jù)。

例如下面的幾個列表中,有存儲數(shù)值的、字符串的、內(nèi)嵌列表的。不僅如此,還可以存儲其他任意類型。


>>> L = [1, 2, 3, 4]
>>> L = ["a", "b", "c", "d"]
>>> L = [1, 2, "c", "d"]
>>> L = [[1, 2, 3], "a", "b", [4, "c"]]

python中的列表是一個序列,其內(nèi)元素是按索引順序進(jìn)行存儲的,可以進(jìn)行索引取值、切片等操作。

列表結(jié)構(gòu)

列表是可變對象,可以原處修改列表中的元素而不會讓列表有任何元數(shù)據(jù)的變動。


>>> L = ["a", "b", "c"]
>>> id(L), id(L[0])
(57028736, 55712192)
>>> L[0] = "aa"
>>> id(L), id(L[0])
(57028736, 56954784)

從id的變動上看,修改列表的第一個元素時,列表本身的id沒有改變,但列表的第一個元素的id已經(jīng)改變。

看了下面列表的內(nèi)存圖示就很容易理解了。


上面是L = ["a", "b", "c"]列表的圖示。變量名L存儲了列表的內(nèi)存地址,列表內(nèi)部包含了類型聲明、列表長度等元數(shù)據(jù),還保存了屬于列表的3個元素的內(nèi)存地址。需要注意的是,列表元素不是直接存在列表范圍內(nèi)的,而是以地址的形式保存在列表中。

所以,修改列表中的元素時,新建一個元素"aa"(之所以新建,是因?yàn)樽址遣豢勺冾愋?,列表本身并沒有改變,只是將列表中指向第一個元素的地址改為新數(shù)據(jù)"aa"的地址。

因?yàn)樾薷牧斜頂?shù)據(jù)不會改變列表本身屬性,這種行為稱為"原處修改"。

所以,列表有幾個主要的的特性:

  • 列表中可以存放、嵌套任意類型的數(shù)據(jù)

  • 列表中存放的是元素的引用,也就是各元素的地址,因此是列表可變對象

  • 列表是可變序列。所以各元素是有位置順序的,可以通過索引取值,可以通過切片取子列表

構(gòu)造列表

有兩種常用的構(gòu)造列表方式:

  1. 使用中括號[]

  2. 使用list()構(gòu)造方法

使用(中)括號構(gòu)建列表時,列表的元素可以跨行書寫,這是python語法中各種括號類型的特性。

例如:


>>> [1,2,3]
[1, 2, 3]
>>> L = [
1,
2,
3
]
>>> list('abcde')
['a', 'b', 'c', 'd', 'e']
>>> list(range(0, 4))
[0, 1, 2, 3]

上面range()用于生成一系列數(shù)值,就像Linux下的seq命令一樣。但是range()不會直接將數(shù)據(jù)生成出來,它返回的是一個可迭代對象,表示可以一個一個地生成這些數(shù)據(jù),所以這里使用list()將range()的數(shù)據(jù)全部生成出來并形成列表。

中括號方式構(gòu)造列表有一個很重要的特性:列表解析,很多地方也稱為"列表推到"。例如:


>>> [x for x in 'abcdef']
['a', 'b', 'c', 'd', 'e', 'f']

list()是直接將所給定的數(shù)據(jù)一次性全部構(gòu)造出來,直接在內(nèi)存中存放整個列表對象。列表推導(dǎo)方式構(gòu)造列表比list()要快,且性能差距還挺大的。

列表基本操作

列表支持+ *符號操作:


>>> L = [1,2,3,4]
>>> L1 = ['a','b','c']
>>> L + L1
[1, 2, 3, 4, 'a', 'b', 'c']
>>> [1,2] + list("34")
[1, 2, '3', '4']
>>> L * 2
[1, 2, 3, 4, 1, 2, 3, 4]
>>> 2 * L
[1, 2, 3, 4, 1, 2, 3, 4]

可以通過+=的方式進(jìn)行二元賦值:


>>> L1 = [1,2,3,4]
>>> L2= [5,6,7,8]
>>> L1 += L2
>>> L1
[1, 2, 3, 4, 5, 6, 7, 8]

L1 += L2的賦值方式對于可變序列來說(比如這里的列表),性能要好于L1 = L1 + L2的方式。前者直接在L1的原始地址內(nèi)進(jìn)行修改,后者新創(chuàng)建一個列表對象并拷貝原始L1列表。但實(shí)際上,性能的差距是微乎其微的,前面說過列表中保存的是元素的引用,所以拷貝也僅僅只是拷貝一些引用,而非實(shí)際數(shù)據(jù)對象。

列表是序列,序列類型的每個元素都是按索引位置進(jìn)行存放的,所以可以通過索引的方式取得列表元素:


>>> L = [1,2,3,4,5]
>>> L[0]
1
>>> L = [
... [1,2,3,4],
... [11,22,33,44],
... [111,222,333,444]
... ]
>>> L[0][2]
3
>>> L[1][2]
33
>>> L[2][2]
333

當(dāng)然,也可以按索引的方式給給定元素賦值,從而修改列表:


>>> L = [1,2,3,4,5]
>>> L[0] = 11

通過賦值方式修改列表元素時,不僅可以單元素賦值修改,還可以多元素切片賦值。


>>> L[1:3] = [22,33,44,55]
>>> L
[11, 22, 33, 44, 55, 4, 5]

上面對列表的切片進(jìn)行賦值時,實(shí)際上是先取得這些元素,刪除它們,并插入新數(shù)據(jù)的過程。所以上面是先刪除[1:3]的元素,再在這個位置處插入新的列表數(shù)據(jù)。

所以,如果將某個切片賦值為空列表,則表示直接刪除這個元素或這段范圍的元素。


>>> L
[11, 22, 33, 44]
>>> L[1:3] = []
>>> L
[11, 44]

但如果是將空列表賦值給單個索引元素,這不是表示刪除元素,而是表示將空列表作為元素嵌套在列表中。


>>> L = [1,2,3,4]
>>> L[0] = []
>>> L
[[], 2, 3, 4]

這兩種列表賦值的區(qū)別,在理解了前文所說的列表結(jié)構(gòu)之后應(yīng)該不難理順。

列表其它操作

列表是一種序列,所以關(guān)于序列的操作,列表都可以用,比如索引、切片、各種序列可用的函數(shù)(比如append()、extend()、remove()、del、copy()、pop()、reverse())等。詳細(xì)內(nèi)容參見:python序列操作

除了這些序列通用操作,列表還有一個專門的列表方法sort,用于給列表排序。

列表排序sort()和sorted()

sort()是列表類型的方法,只適用于列表;sorted()是內(nèi)置函數(shù),支持各種容器類型。它們都可以排序,且用法類似,但sort()是在原地排序的,不會返回排序后的列表,而sorted()是返回新的排序列表。


>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
>>> help(sorted)
Help on built-in function sorted in module builtins:
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.

本文僅簡單介紹排序用法。

例如列表L:

>>> L = ['python', 'shell', 'Perl', 'Go', 'PHP']

使用sort()和sorted()排序L,注意sort()是對L直接原地排序的,不是通過返回值來體現(xiàn)排序結(jié)果的,所以無需賦值給變量。而sorted()則是返回排序后的新結(jié)果,需要賦值給變量才能保存排序結(jié)果。


>>> sorted(L)
['Go', 'PHP', 'Perl', 'python', 'shell']
>>> L
['python', 'shell', 'Perl', 'Go', 'PHP']
>>> L.sort()
>>> L
['Go', 'PHP', 'Perl', 'python', 'shell']

不難發(fā)現(xiàn),sort()和sorted()默認(rèn)都是升序排序的(A)。它們都可以指定參數(shù)reverse=True來表示順序反轉(zhuǎn),也就是默認(rèn)得到降序:


>>> L.sort(reverse=True)
>>> L
['shell', 'python', 'Perl', 'PHP', 'Go']

在python 3.x中,sort()和sorted()不允許對包含不同數(shù)據(jù)類型的列表進(jìn)行排序。也就是說,如果列表中既有數(shù)值,又有字符串,則排序操作報錯。

sort()和sorted()的另一個參數(shù)是key,它默認(rèn)為key=None,該參數(shù)用來指定自定義的排序函數(shù),從而實(shí)現(xiàn)自己需要的排序規(guī)則。

例如,上面的列表不再按照默認(rèn)的字符順序排序,而是想要按照字符串的長度進(jìn)行排序。所以,自定義這個排序函數(shù):


>>> def sortByLen(s):
... return len(s)

然后通過指定key = sortByLen的參數(shù)方式調(diào)用sort()或sorted(),在此期間還可以指定reverse = True


>>> L = ['shell', 'python', 'Perl', 'PHP', 'Go']
>>> sorted(L,key=sortByLen)
['Go', 'PHP', 'Perl', 'shell', 'python']
>>> L.sort(key=sortByLen,reverse=True)
>>> L
['python', 'shell', 'Perl', 'PHP', 'Go']

再例如,按照列表每個元素的第二個字符來排序。


def f(e):
return e[1]
L = ['shell', 'python', 'Perl', 'PHP', 'Go']
sorted(L, key=f)
L.sort(key=f)

更多的排序方式,參見:sorting HOWTO。比如指定兩個排序依據(jù),一個按字符串長度升序排,長度相同的按第2個字符降序排。用法其實(shí)很簡單,不過稍占篇幅,所以本文不解釋了。

列表迭代和解析

列表是一個序列,可以使用in測試,使用for迭代。

例如:


>>> L = ["a","b","c","d"]
>>> 'c' in L
True
>>> for i in L:
... print(i)
...
a
b
c
d

再說列表解析,它指的是對序列中(如這里的列表)的每一項(xiàng)元素應(yīng)用一個表達(dá)式,并將表達(dá)式計算后的結(jié)果作為新的序列元素(如這里的列表)。

通俗一點(diǎn)的解釋,以列表序列為例,首先取列表各元素,對每次取的元素都做一番操作,并將操作后得到的結(jié)果放進(jìn)一個新的列表中。

因?yàn)榻馕霾僮魇且粋€元素一個元素追加到新列表中的,所以也稱為"列表推導(dǎo)",表示根據(jù)元素推導(dǎo)列表。

最簡單的,將字符串序列中的各字符取出來放進(jìn)列表中:


>>> [ i for i in "abcdef" ]
['a', 'b', 'c', 'd', 'e', 'f']

這里是列表解析,因?yàn)樗饷媸褂玫氖侵欣ㄌ?span style="outline: 0px;max-width: 100%;box-sizing: border-box;-webkit-tap-highlight-color: transparent;font-weight: 700;border-width: 0px;border-style: initial;border-color: initial;overflow-wrap: break-word !important;">[],表示將操作后的元素放進(jìn)新的列表中??梢詫⒅欣ㄌ柼鎿Q成大括號,就變成了集合解析,甚至字典解析。但注意,沒有直接的元組解析,因?yàn)樵M的括號是特殊的,它會被認(rèn)為是表達(dá)式的優(yōu)先級包圍括號,而不是元組構(gòu)造符號。

取出元素對各元素做一番操作:

>>> [ i * 2 for i in "abcdef" ]
['aa', 'bb', 'cc', 'dd', 'ee', 'ff']
>>> L = [1,2,3,4]
>>> [ i * 2 for i in L ]
[2, 4, 6, 8]
>>> [ (i * 2, i * 3) for i in L ]
[(2, 3), (4, 6), (6, 9), (8, 12)]

解析操作和for息息相關(guān),且都能改寫成for循環(huán)。例如,下面兩個語句得到的結(jié)果是一致的:

[ i * 2 for i in "abcdef" ]
L = []
for i in "abcdef":
L.append(i * 2)

但是解析操作的性能比for循環(huán)要更好,正符合越簡單越高效的理念。

學(xué)過其他語言的人,估計已經(jīng)想到了,解析過程中對各元素的表達(dá)式操作類似于回調(diào)函數(shù)。其實(shí)在python中有一個專門的map()函數(shù),它以第一個參數(shù)作為回調(diào)函數(shù),并返回一個可迭代對象。也就是說,也能達(dá)到和解析一樣的結(jié)果。例如:

>>> def f(x):return x * 2
...
>>> list(map(f,[1,2,3,4]))
[2, 4, 6, 8]

map()函數(shù)在后面的文章會詳細(xì)解釋。

*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)事宜。



瀏覽 54
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 五月丁香人妻| 福利一区二区视频网| 深爱开心激情| 操屄小视频| 成人免费毛片AAAAAA片| 成人久久大香蕉| 99热这里只有精| 成人做爰A片AAA毛真人| 97色色婷婷五月天| 97无码精品人妻一区二区三区| 亚洲成人视频网站| 操逼资源| 中文字幕乱码中文字幕电视剧| 操逼大片| 精品无码一区二区三区在线| 最新在线中文字幕| 国产69av| 初尝人妻滑进去了莹莹视频| a片在线免费观看| 国产69视频在线观看| 青青青草视频在线观看| av干在线| 91麻豆精品国产91久久久久久| 人人干人人艹| 无码九九九| 日韩黄色三级| 人人操碰人人| 黄色片大全| 黄片免费大全| 黄色福利视频在线观看| 操B在线观看| 国产午夜三级| www.A片| 色94色.欧美.setu| 五月天婷婷丁香网| 中文字幕免费在线观看| 欧美mv日韩mv国产| 中文字幕第六页| 伊人色综合网| 免费黄色成人视频| 亚洲中文字幕免费观看视频| 91丨九色丨蝌蚪丨成人| 国产精品自拍一区| 超级碰碰| 五月天婷婷在线播放视频免费观看 | 性久久久久久久| 91精品国产综合久久久蜜臀图片| aaa无码| 最新中文字幕视频| 99视频精品全部免费看| 午夜无码鲁丝片午夜精品一区二区| 午夜AV在线免费观看| 激情婷婷| 亚洲小穴| 日韩无任何视频在线观看| 西西人体44www大胆无码| 国产免费黄色视频| 国产精品久久久久久无码人妻| 亚洲黄色AV| 人人爽人人操人人| 海滩AV黑人| 极品一线天小嫩嫩真紧| 亚洲精品97久久| 国产口爆在线| 成人精品永久免费视频99久久精品| 国产欧美综合在线| 伊人网在线免费视频| 五月丁香婷婷在线| 久久久久久无码精品亚洲日韩麻豆| 青青草超碰在线| 午夜精品久久久久久久99热精东| 日本黄色一级视频| 亚洲阿v天堂| 国产精品视频免费| 日韩激情av| 婷婷情色五月| 欧美成人免费电影| 久久综合婷婷| 人人操av| 成人婷婷五月天| av一区二区三区| 亚洲成人视频免费在线观看| 亚洲无人禁区| 激情五月丁香五月| 丁香花五月天| eeuss| 日韩一级片在线播放| 91夜夜夜| 日本黄色大片| 久草久热| 中文人妻av| 亚洲电影中文字幕| 亚洲综合二区| 成人激情视频| 伊人九九热| 黄色无码视频在线观看| 午夜毛片| 日韩无码中字| 在线观看免费黄片| 驲韩在线视频免费观看| 色婷婷一区二区三区四区五区精品视| 黑人干亚洲| 久久久久久三级电影| 国产精品9999久久久久仙踪林| 日本三级片免费观看| 在线观看黄a| 青草网在线观看| 亚洲性爱一区二区三区| 日本成人黄色| 在线观看中文字幕无码| 欧美日皮| jizz久久| www五月天| 99九九精品| x88AV吊钟奶熟女| 国产黄色视频免费| 国产黄页| 亚洲一级黄| 91久久精品日日躁夜夜躁国产| 操操网站| 免费无码婬片AAAA片直播| 国产香蕉在线| 学生妹毛片| 国产乱子伦日B视频| 91成人片| 欧美自拍视频| 四库影库| 肏屄在线观看| 欧美老女人操逼视频| 大鷄巴成人A片视频| 日韩中文无| 黄色二区| 日韩黄色小说| 大雞巴疯狂浓精合集| 国产中文字幕AV在线播放| 日本久久婷婷| 91ThePorn国产| 国产污视频在线观看| 粉嫩小泬BBBBBB免费看| 亚洲A网| av手机版| 中文字幕在线亚洲| 国内久久| 不卡无码免费| 超碰自拍97| 日韩人成| AV在线免费网站| 杨贵妃一级婬片90分钟| 日皮视频免费在线观看| 亚洲性爱一区| 高清无码学生妹| 狼人综合影院| AV资源在线免费观看| 色婷婷影视| 欧美性小说| 操一操影院| 黄色一级网站| 手机免费Av| 欧美一级操逼视频| 日韩AV无码成人精品| 国产一级婬乱片AV片AAA毛片| 久久精品成人| 免费无码高清视频| 怡红影院美乳| 91一区在线观看| 人人摸人人操人人爱| 亚洲精品国产精品国自产| 影音先锋女人av噜噜色| 人人摸人人色| 一区二区无码在线| 五夜福利成人视频| 久久影院三级片| 日韩黄色精品| 一区二区无码精品| www.6969成人片亚洲| 中文字幕网站| 色mm在线播放| 99视频免费在线| 一区二区A片| 国产亚洲欧美精品综合在线| www.污| 中文字幕在线观看一区| 夜夜嗨av无码一区二区三区| 国精品无码一区二区三区在线秋菊 | 午夜操逼逼| 精品永久免费| 午夜福利10000| 天天日天天舔| 高清无码不卡av| 欧美性受XXXX黑人XYX性爽一| 黄片日逼视频| 麻豆911| 日韩国产av| 全部视频午夜寂寞| 无码人妻一区二区三区三| 无码爆操| 黄色片视频在线观看| 久久久天堂| 农村新婚夜一级A片| 日韩无码乱码| 久久无码一区二区| 免费一级黄色| 另类老妇奶性BBWBBw| 婷婷好色五月天| 欧美一在线一综合| 男人天堂亚洲| 97超碰资源总站| 无码在线电影| 黄色成人在线观看| 国产免费高清无码| 91麻豆精品无码人妻| 午夜激情五月天| 天天干天天添| 爱视频福利网| 丰满熟妇人妻无码视频| 日逼日逼日逼| 亚洲国产成人精品女人| 精品孕妇一级A片免费看| 日韩免费高清无码视频| 大香蕉国产精品视频| 中文字幕久久无码| 天堂v在线观看| 免费视频亚洲| 日韩人妻无码一区二区三区| 综合网久久| 北条麻妃无码在线视频| 翔田千里中文字幕无码| 青娱乐自拍偷拍| 国产欧美一区二区| 99久久人妻精品免费二区| 一级免费片| 在线观看视频91| 国产黄色电影在线观看| 久久免费成人电影| av资源在线看| 99热精品在线播放| 三级网址大全| 天天成人| 亚洲成人小说| 中文字幕一区二区蜜桃| 91aV视频| 色婷婷在线免费视频| 一区二区三区无码视频| 免费看片av| 谁有毛片网址| 精品无码一区二区三| 色五月婷婷丁香五月| 成人丁香五月| 91美女网站| 日本精品久久| 男人V天堂| 国模私拍视频| 午夜无码鲁丝片午夜精品一区二区| 国产精品国产三级国产AⅤ中文 | 三级片中文字幕| 思思热这里只有精品| 五月丁香视频在线观看| 99精品在线免费观看| 午夜精品久久久久久不卡8050| 国产农村乱婬片A片AAA图片| 国产精品乱子伦视频一区二区| 欧美日韩一区二区三区| 九色无码| 欧美XXX黑人XYX性爽| 黄色日逼视频| 搡BBB搡BBBB搡BBBB'| 在线天堂av| 另类老妇性BBwBBw| 91视频在线观看免费大全| av黄页| 蜜臀AV在线| 人人摸人人爱人人操| 伊人狠狠蜜桃亚洲综合| 黄色成人网站在线观看| 国产精品国产三级国产| 天天天天天天操| 美女网站黄a| 国产成人自拍偷拍视频| 日日爱爱| 日韩一级乱伦| 91无码秘蜜桃一区二区三区-百度| 欧美丰满人妻免费视频人| 不卡无码av| 在线看91| 99精品视频免费观看| 欧美AAAAAAAA| 日韩人妻精品无码| 手机AV网站| 人人干国产| 91视频免费网站| 国产免费性爱视频| 国产精品77777| 东京热久久综合色五月老师| 四季AV之日韩人妻无码| AA片免费网站| 久艹99| 成人电影无码| 欧美日韩在线播放| 九色PORNY丨自拍蝌蚪| 日韩人妻无码中文字幕| 俺去了俺来也| 激情五月天导航| 亚洲无码免费| 中文字幕成人网站| 婷婷操| 学生妹一级大片| 操欧美美女| 国精久久久久| NP玩烂了公用爽灌满视频播放| 夜夜国自一区| 就爱av| 蜜桃传媒一区二区亚洲| 亚洲精品鲁一鲁一区二区三区| 亚洲成色A片77777在线小说| 国产在线观看免费视频今夜| 88在线无码精品秘入口九色| 豆花成人社区,视频| 高清毛片AAAAAAAAA郊外| 亚洲自拍无码| 久草视频在线资源| 熟妇人妻中文| 国产精品视频| 91免费网站在线观看| 午夜激情视频在线观看| 蜜桃久久精品成人无码AV| 天天摸夜夜操| 久久露脸国语精品国产91| AV无码在线播放| 亚洲综合p| 亚洲免费观看高清完整版在线观| 污网站在线观看| 羽月希奶水饱胀在线播放| 日本一区二区不卡| 中文字幕中文字幕无码| 欧美国产日韩在线| 日韩AⅤ视频| 精品一二区| 欧美爱爱试看| www.精品视频| 猫咪亚洲AV成人无码电影| 久久99久久99久久99| 久草新| 无码黄页| 欧美性猛交一区二区三区| 熟妇高潮| 免费观看黄色视频| 免费成人视频| 亚洲天堂在线播放| 日韩无码视频免费| 亚洲一级电影| 色片无码| 老司机永久免费91| 女生操逼网站| 91麻豆福利在线| av资源在线看| 亚洲综合免费观看高清完整版在线| 日韩高清无码三级片| 日韩人妻无码专区一区二区| 狠狠欧美| 亚洲无码一级电影| 91丝袜一区在线观看| 久草在在线视频| 成人三级毛片| 北条麻妃无码在线视频| 人妻乱码| 超碰日| 国产伊人久久| 成人黄网站在线观看| 护士小雪的yin荡高日记H视频 | 中文字幕理论片| 91超碰在线免费观看| 日韩黄色免费网站| 臭小子啊轻点灬太粗太长了的视频| 一级内射片在线网站观看| av无码在线播放| 欧美MV日韩MV国产网站| 亚洲无码电影网| 人人超碰在线| 久久成人免费视频| 亚洲码无人客一区二区三区 | 欧美婷婷| 一区二区三区久久久久〖网:.〗| 91狠狠爱| 午夜成人AV| 日本一区二区三区四区在线观看 | 免费黄片在线看| 三p视频| 亚州AV操屄| 无码123区| 婷婷五月天激情丁香| 精品人妻午夜一区二区三区四区 | 精品国产AV鲁一鲁一区| 蜜桃秘av一区二区三区安全| 伊人久久AV| 欧美日韩卡一卡二在线播放视频| 99久re热视频精品98| 中文字幕成人| 超小超嫩国产合集六部| 亚洲日韩中文字幕无码| 午夜福利成人视频| 欧美大鸡巴在线观看| 91在线无码精品秘国产色多多 | 99在线精品视频观看| 国产小视频在线| 国产99自拍| JlZZJLZZJlZZ亚洲女人17| 你懂的在线观看视频| 又大又粗AV| 亚洲无码影音先锋| 亚洲成人av无码| 午夜艹| 大香蕉A片| 日韩AV中文字幕在线播放| 国产日韩欧美在线| 日本国产在线| 1024手机在线观看| 黄色一级片免费看| 国产精品同| 亚洲无码久久| 大茄子熟女AV导航| 人人色网站| 国产第一页在线| 日韩成人免费观看| 亚洲va综合va国产va中文| 亚洲网站在线播放| 久久久久久精品国产三级| 中文字幕在线免费看线人| 人人肏人人射| 午夜激情视频在线观看| 操嫩逼视频| 国产喷水ThePorn| 亚洲无码专区在线观看| 午夜丁香婷婷| 人人摸人人搞| 日韩无码精品电影| 欧美一级性爱在线观看| 中文字幕在线免费观看视频| 国语对白做受欧美| 蜜桃做爱| 91内射| 狠狠干天天干| 高清无码内射视频| 中文字幕一区二区三区四区| 中文在线字幕免费观| 亚洲欧美另类图片| AV无码高清| 亚洲精品女人久久久| 国产激情123区| 亚洲v在线| 黄色永久网站| 综合久久av| 色噜噜av| 天堂va欧美va亚洲va在线| AV资源网站在线| 在线观看免费无码视频| 日韩av高清| 91久久精品国产91久久公交车| 久久水蜜桃| www.五月丁香| 亚洲无码一区二区三区蜜桃| 国产中文字幕在线播放| 二区三区免费视频| 婷婷五月天免费视频| 国产三级在线播放| 丁香婷婷六月天| 中文字幕国产综合| 91人人操| 爆草美女| 黄色视频日本免费| 親子亂子倫XXXX| 欧美成人性爱视频| 人人妻人人澡人人爽人人爽| 久操手机在线| 日韩精品第一页| 特级艺体西西444WWw| 日韩字幕无码| 国产A片录制现场妹子都很多| 色哟哟国产| chinese搡老熟老妇人| 成年人性生活免费视频| 亚洲AV第二区国产精品| 极品一线天小嫩嫩真紧| 亚洲第一黄| 好吊视频一区二区三区| 国产香蕉在线观看| 国产成人黄色电影| 天天操夜夜操视频免费高清| 成人免费无遮挡无码黄漫视频| 色色婷婷五月| 国产亚洲无码激情前后夹击| 人人操人人干97| 91人妻精| 在线国产中文字幕| 亚洲福利在线免费观看| 久久国产黄色一级片| 91人妻无码成人精品一区二区| 99re6热在线精品视频| 三级片网页| 日韩在线中文字幕| 亚洲视频国产| 国产区一区| 操人在线观看| 国产激情欧洲在线观看一区二区三区| 人人妻人人爽人人精品| 91精片| 夜夜撸一撸| 淫色人妻网| 中文字幕欧美在线| 黄片免费看网站| 久久五月亭亭| 熟女一区二区三区| 中国女人操逼视频| 亚洲老鸭窝| 国产探花在线观看| 日本少妇高潮喷水XXXXXXX | 日本操屄视频| 在线观看亚洲| 日本A片视频| 亚洲性爱在线播放| 亚洲.www| 无码日逼视频| 人人射| 麻豆A∨在线| 亚洲综合精品| 91嫖妓站街按店老熟女| 中文字幕资源站| 精品视频在线播放| 一级欧美日韩| 最新黄色av| 国产成人一区二区无码| 成人黄色毛片视频| 少妇做爱视频| 亚洲高清无码一区| 午夜福利1000| 黄频视频| 午夜福利免费在线观看| 欧美色图视频网站| 外国一级片| 在线免费看a片| 日韩av小电影| 丰满人妻一区二区三区46| 无码三级AV| 日韩中文字幕熟妇人妻| 老鸭窝在线观看视频| 翔田千里50岁无码| 国产91在线一区| 欧美三级不卡| 久久久久亚洲AV成人片| 黄色精品| 亚洲无码视频免费在线观看| 久久精品苍井空免费一区二 | 思思热视频在线观看| 一级黄色电影免费| 91av在线电影| 北条麻妃视频在线播放| 日本欧美久久久久免费播放网| 国产欧美日韩在线观看| 日韩中文一区| 91人妻人人澡人人爽精品| a视频免费看| 精品人妻一区二区三区日产乱码| 老司机永久免费91| 一本大道东京热av无码| 久久精品国产99精品国产亚洲性色 | 精品在线一区| 日本欧美在线视频| 久久久久亚洲AV无码网影音先锋 | 99热免费在线观看| 国内成人AV| 亚洲色图片区| 91九色蝌蚪91POR成人| 熟妇操逼视频| 亚洲精品一区中文字幕乱码| 在线一区二区三区| 午夜精品久久久久久久99黑人 | 国产在线一区二区三区四区| 老熟女--91XX| 人妻丝袜蕾丝高跟双飞| 高清免费无码| 日韩高清无码一区二区| 操逼操逼操逼操逼| 国产精品日韩无码| 久久熟女嫩草成人片免费| 国产精品国产精品国产专区不52| 国产有码在线观看| 日韩v欧美v日本v亚洲v国产v| 国产欧美综合视频| 国产AV大全| 久草小视频| 成人爽a毛片一区二区免费| 色超碰| 插插插菊花综合网| 五月乱伦| 欧美三级欧美三级三级| 国产精品一区二区AV日韩在线| 亚洲人在线观看| 99在线观看| 国产精品秘久久久久久免费播放| 色播五月婷婷| 97色在线| 午夜激情五月天| 欧美A片在线| 无码日韩人妻精品久久蜜桃| 美日韩无码视频| 偷拍一区二区三区| 午夜精品久久久久久久99热精东 | 色中文| 无码任你躁久久久久| 精品一二三区| 亚洲日韩精品中文字幕在线| 成人网站在线观看视频| 国内老熟妇对白HDXXXX| 无码中文字幕在线播放| 亚洲www在线观看| 在线观看免费黄色| 成年人免费视频在线观看| 色噜噜人妻av中文字幕| 中文字幕乱伦视频| 好好的日视频| 亚洲免费视频在线看| 日韩无码人妻视频| 这里视频很精彩免费观看电视剧最新 | 中文字幕无码在线视频| 无码婷婷| 国产av中文字幕| 91欧美日韩综合| 牛牛影视av老牛影视av| 欧美丰满美乳XXⅩ高潮www | 日韩综合精品中文字幕66| 91成人一区二区三区| 人人妻人人妻| 台湾成人综合网| 国产棈品久久久久久久久久九秃| 五月无码| 日韩大屌| 日韩熟妇无码中文字慕| 久久精品苍井空免费一区二| 成人AV中文字幕| 韩日一区二区三区| 91久久精品无码一区| 日比视频网站| 色婷视频| 欧美日韩一区视频| 国产网站免费| 囯产一级a一级a免费视频| 毛片日韩| 中文字幕在线乱| 青青欧美| 黑人大肉棒| 欧美h在线观看| 久久国产精品99久久人人澡| 亚洲黄色一级电影| 天天激情站| 亚洲黄色一级电影| 国内精品久久久久久久久久变脸| AV第一福利大全导航| 91视频高清无码| 成av人片一区二区三区久久| 精品无码AV一区二区三区| 无码波多野结衣| 日本成人一区二区| 中文字幕精品视频在线| 日本精品视频一区二区| 大香蕉最新视频| 韩国成人精品三级| 9l视频自拍九色9l视频成人| 成人日韩在线| 久久成人网豆花视频| 天天中文字幕| 尤物91| 波多野结衣亚洲视频| 操操网站| 日韩无码操逼视频| 久久黄视频| a视频免费观看| 五月天啪啪| seseav| 日韩AV小说| 亚洲资源在线观看| 热99精品| 麻豆成人91精品二区三区| 亚洲乱伦| 综合影院| 婷婷开心色四房播播免费| 逼逼爱插插网站| 亚洲国产A片| 久久视频网站| 色色色五月婷婷| 日韩在线99| 国产在线看片| 成人亚洲av| 黑人精品欧美一区二区蜜桃| 精品一区二区三区在线观看| 天堂在线www| 国产又爽又黄在线看| 亚洲v天堂| 久久精品国产视频| 大香蕉A片| 亚洲无码在线播放| 日本最新免费二区| 三级久久网| 欧美婷婷在线| 真人一级片| 久热国产在线| 视色视频在线观看18| 欧美日韩精品一区| A片免费在线| 17c.白丝喷水自慰| 狠狠撸狠狠干| 人妻第一页| 辽宁模特张雪馨视频最新| 亚洲一线在线观看| 亚洲成人a片| 欧美一级片网站| 免费黄色一级视频| 久操资源站| 国产亚洲天堂| 日韩啪| 日韩黄视频| 国产第一页在线观看| 亚洲黄色AV| 骚逼中文字幕| 天堂综合网久久| 中文资源在线观看| 亚洲V在线| 一本到无码| 国产成人精品免高潮在线人与禽一| 色婷婷AV国产精品| 黄色视频网站在线| 国产三级片网站| yy午夜福利| 精品国产AV色一区二区深夜久久 | 三上悠亚无码破解69XXX| 无码av免费精品一区二区三区| 在线看色| 国产一级内射| 成人做爰100片免费-百度| 亚洲三级自拍| av天堂资源在线| H网站在线观看| 精品一区二区三区在线观看| 国产视频二区| 色啪视频| 伊人黄片| 无码人妻丰满熟妇区毛片蜜桃麻豆| 三级99| 亚洲国产成人久久| 免费无码一级A片大黄在线观看| 日本高清无码在线| 波多野结衣亚洲无码| 内射精品| 免费一级婬片AA片观看| 亚洲一级无码视频| 天堂在线中文网| 成人网站三级片| 操人网站| 91av在线看| 黄色色情小说| 男女抽插视频| 日韩中文字幕视频在线观看| a片免费网站| 91狠狠色丁香婷婷综合久久| 影音先锋aV成人无码电影| 久久久久久久久久久久久自慰小片 | 国产亚洲Av| 日韩一区二区无码| 久久无码区| 西西人体BBBBBB| 无码乱码在线观看| 北条麻妃中文字幕在线观看| 亚洲国产精品久久人人爱| 在线播放亚洲| 体内射精免费视频| 欧美深夜福利视频| 男人的天堂在线播放| 操逼a片| 欧美三级| 亚洲无码三级片在线观看| 不卡日本| 日韩一区二区三| 午夜激情视频网站| 欧美日韩国产精品| 国产欧美激情| www.午夜福利| 欧美亚洲自拍偷拍| 日韩视频无码| 日逼网址| 午夜mm| 国产男人天堂| 午夜福利10000| 精品视频在线免费观看| 亚洲91黄色片| 成人免费啪啪视频| 国产黄色视频在线观看免费| 国产精品A片守望| 国产一级a片| 三级成人av| 亚洲午夜av| 免费亚洲无码| 成年人在线视频| 一级a一级a爰片免费免免在线| 激情五月俺也去| 国产116页| 久草小视频| av福利在线观看| 伊人伊人网| 久久精品99久久久久久| 伊人久久影院| 国产色秘乱码一区二区三区| 91在线无码精品秘入口电车| 欧美精品在线观看视频| 在线视频一区二区三区| 中文字幕中文字幕一区| 欧美最猛黑A片黑人猛交蜜桃视频| 91国产乱伦| 欧美性爱免费网站| 午夜福利啪啪啪| 日韩三级黄色| 五月天国产| 国产无码久久| 日韩aaaa| 北条麻妃在线一区二区| 伊人久久爱| 国产天堂| 中文字幕+乱码+中文字幕一区| 色婷婷18禁| 日韩黄色一级视频| 中文字幕免费久久| 开心黄色网| 成人片无码| 91免费观看视频| 日韩三级一区二区| 内射老熟女| 一区二区高清视频| 色婷婷天天操天天干| 欧美成人A片AAA片在线播放| 大香蕉欧美在线| 亚洲性网| 成人精品永久免费视频99久久精品| 激情久久av| 天堂中文资源在线| 亚洲中文字幕在线观看视频网站| 中文字幕中文字幕无码| 亚洲日本国产| 亚洲女人被黑人巨大的原因| 国产在线色视频| 青青草成人电影| 偷拍综合网| 91麻豆国产福利精品| 日韩动态视频| 亚洲精品国产精品国自产曰本| 日本欧美在线观看高清| 国产第页| 日本翔田千里奶水| 中文电视剧字幕在线播放网站| 日本亚洲精品秘入口A片| 日皮视频在线| 日本不卡一区| 国产欧美一区二区三区特黄手机版 | 一区二区三区无码精品| 1插菊花综合| 久久久大香蕉| 精品国产AV无码一区二区三区| 黄色综合网| 国产午夜激情| 人人摸人人看人人| 偷拍亚洲欧美| 国产精品96久久久久久| 亚洲av黄片| 天天干人妻| 精品人妻一区二区三区四区不卡在 | 青草福利视频| 六十路老熟女码视频| 北条麻妃精品| 操逼国产| 人人干人人操人人| 性欧美| 99精品六月婷婷综合在线| 国产三级一区二区| 欧美日韩网站| 高清无码免费在线视频| 免费看黄色视频的网站| 香蕉毛片| 欧美亚洲小说| 91九色91蝌蚪91成人| 欧美伊人网| 成人黄色AV网站| 男人的天堂视频网站| 91大神久久| 国产小电影在线观看| 婷婷五月天亚洲| 精品孕妇一级A片免费看| 婷婷久久在线| 国产精品视频免费| 免费在线a视频| 99在线精品视频免费观看20| 久操无码视频| 日韩AV高清无码| 亚洲成人在线免费观看| 欧美一区二区三区成人|