你了解Python列表元素刪除的各種方法嗎?
Python的列表對象元素刪除有很多方法,下面的代碼中有些是錯誤的,有些是正確的,你都了解嗎?
def DEMO1():
x=[10,10,10,20,10,10,20,10]
for index, value in enumerate(x):
if value == 10:
x.remove(value)
print(x,"第一個錯誤程序")
DEMO1()
def DEMO2():
x=[10,10,10,20,10,10,20,10]
for value in x:
if value == 10:
x.remove(value)
print(x,"第二個錯誤程序")
DEMO2()
def DEMO3():
x=[10,10,10,20,10,10,20,10]
for i in range(len(x)):
if x[i] == 10:
x.remove(x[i])
print(x,"第三個錯誤程序")
# DEMO3() 上面這個main2程序連運行都會出錯,因為刪除到後面會超過列表長度
# 下面四個程序可以刪除所有元素為10的內容
def DEMO4():
x=[10,10,10,20,10,10,20,10]
for i in range(len(x)-1,-1,-1):
if x[i] == 10:
x.remove(x[i])
print(x,"第一個正確程序,採用從後面刪除模式")
DEMO4()
def DEMO5():
x=[10,10,10,20,10,10,20,10]
for value in x[:]:
if value == 10:
x.remove(value)
print(x,"第二個正確程序,採用切片模式")
DEMO5()
def DEMO6():
x=[10,10,10,20,10,10,20,10]
i=0
while 10 in x:
x.remove(10)
print(x,"第三個正確程序,採用while循環判斷成員函數")
DEMO6()
def DEMO7():
x=[10,10,10,20,10,10,20,10]
x1=[v for v in x if v!=10]
print(x1,"第四個正確程序,採用列表推導式")
x2=list(filter(lambda v:v!=10,x))
print(x2,"第五個正確程序,採用filter函數過濾")
DEMO7()
※python開發學習:Python 3 VS Python 2
※如何用一個Python示例入門TensorFlow?
TAG:Python |