幾種操作方式,效率差不多:
創(chuàng)新互聯(lián)公司憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
In [4]: %timeit l=range(10000);l=[];
10000 loops, best of 3: 115 ?0?8s per loop
In [5]: %timeit l=range(10000);del l[:]
10000 loops, best of 3: 107 ?0?8s per loop
In [6]: %timeit l=range(10000);l=None;
10000 loops, best of 3: 114 ?0?8s per loop
所以從性能上來(lái)看,這幾種刪除方式都可以。
從功能上來(lái)講,有一點(diǎn)區(qū)別:
1. l=[]和l=None是給l賦一個(gè)新的值,不影響原來(lái)數(shù)組的內(nèi)容
In [1]: l=range(5)
In [2]: l2=l
In [3]: l2=None
In [4]: l
Out[4]: [0, 1, 2, 3, 4]
2. del l[:]則是刪除了原數(shù)組的所有元素
In [5]: l2=l
In [6]: del l2[:]
In [7]: l
Out[7]: []
這個(gè)是列表。如果生成的隨機(jī)數(shù)不在列表中就添加進(jìn)去。
import?random
def?union(number):
array=[]
for?i??in?range(number):
while?True:
tmp?=?random.randrange(1,100)
if?tmp?not?in?array:
array.append(tmp)
break?
return?array
print?(union(10))
使用filter來(lái)實(shí)現(xiàn),以python3為例,如果刪除列表中的所有0,則可使用下面代碼實(shí)現(xiàn):
a?=?[1,2,0,3,4,0,5,0,6]
b?=?filter(lambda?x:?x?!=?0,?a)
list(b)
效果如下:
注:如果使用python2則直接輸出b即可,在python3中filter返回結(jié)果為可迭代的對(duì)象,需使用list轉(zhuǎn)換成列表。
先定義一個(gè)數(shù)組列表:
列表合并也可以用+,但是用+的話,會(huì)產(chǎn)生一個(gè)新的列表(當(dāng)然也可以賦值給任何的變量),而extend則只是修改了原來(lái)的對(duì)象
只讀數(shù)組,只能查看不能編輯,列表的切片操作同樣適于元組。
表達(dá)方式:tuple=("元素1","元素2","元素3"),中間同樣用,隔開
特殊的元組:tupleZero=()空元組
? ? ? ? ? ? ? ? ? ? tupleOne=("元素1",)? 只有一個(gè)元素,后面要跟一個(gè),(注意好的習(xí)慣的養(yǎng)成)
作用:1.對(duì)于一些不想被修改的元素,可以放在元組里面
? ? 2.元組可以在映射(和集合的成員)中當(dāng)作鍵使用,而列表不行
3.元組作為內(nèi)建函數(shù)和方法的返回值
enumerate(列表對(duì)象,返回標(biāo)簽起始值(默認(rèn)為零))
上面的例子可以看出,返回的i是一個(gè)元組,如果不想要元組的話,可以用兩個(gè)參數(shù)接收: