1
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供太白網(wǎng)站建設(shè)、太白做網(wǎng)站、太白網(wǎng)站設(shè)計、太白網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、太白企業(yè)網(wǎng)站模板建站服務(wù),10多年太白做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
len(list)
列表元素個數(shù)
2
max(list)
返回列表元素最大值
3
min(list)
返回列表元素最小值
4
list(seq)
將元組轉(zhuǎn)換為列表
序號
方法
1
list.append(obj)
在列表末尾添加新的對象
2
list.count(obj)
統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù)
3
list.extend(seq)
在列表末尾一次性追加另一個序列中的多個值(用新列表擴(kuò)展原來的列表)
4
list.index(obj)
從列表中找出某個值第一個匹配項的索引位置
5
list.insert(index, obj)
將對象插入列表
6
list.pop([index=-1])
移除列表中的一個元素(默認(rèn)最后一個元素),并且返回該元素的值
7
list.remove(obj)
移除列表中某個值的第一個匹配項
8
list.reverse()
反向列表中元素
9
list.sort( key=None, reverse=False)
對原列表進(jìn)行排序
10
list.clear()
清空列表
11
list.copy()
復(fù)制列表
python提供了常用的數(shù)據(jù)結(jié)構(gòu),其中之一就是set,python中的set是不支持索引的、值不能重復(fù)、無需插入的容器。
簡單記錄下set常用的操作函數(shù):
1.新建一個set:
set("Hello"),這樣會轉(zhuǎn)成單個字符的值進(jìn)行插入,結(jié)果是'H','e','l','o','l'因為重復(fù)只能插入一次。
2.增加一個元素:
add()用于增加一個元素值,
update([]),用于增加多個元素值,參數(shù)為list,注意如果用add增加多個值,會報參數(shù)類型錯誤。
3.刪除一個元素:
remove()用于刪除一個set中的元素,這個值在set中必須存在,如果不存在的話,會引發(fā)KeyError錯誤。
discard()用于刪除一個set中的元素,這個值不必一定存在,不存在的情況下刪除也不會觸發(fā)錯誤。
4.隨機(jī)刪除函數(shù):
set提供了一個pop()函數(shù),這個函數(shù)隨機(jī)返回一個元素值,然后把這個值刪除,如果set為空,調(diào)用這個函數(shù)會返回Key錯誤。
5.清空函數(shù):
clear(),將set全部清空。
6.測試單個元素在集合內(nèi)是否存在:
in 或者 not in 如果需要判斷一個值在集合內(nèi)是否存在,in就能滿足要求,例如2 in set_num 如果存在則返回True,否則返回False。
7.測試兩個集合是否包含,子集操作:
issubset和issuperset,
s1.issubset(s2)? :測試是否?s1?中的每一個元素都在?s2?中,運算符操作為 s1=s2;
s2.issuperset(s1)? :測試是否?s1?中的每一個元素都在?s2?中,運算符操作為 s1=s2;//注意是s2調(diào)用,參數(shù)為s1.
8.集合的并集:
union s1.union(s2)? :返回一個新集合,新集合包含s1,s2的所有元素,等價的運算符為 | 。
9.集合的交集:
intersection,s1.intersection(s2),返回s1和s2中相同部分
10.其他操作:
s1.difference(s2):包含s1中有,但是s2沒有的元素的集合。
s1symmetric_difference(s2):包含s1和s2中不相同的元素的集合。
以上只是一部分操作的描述,如果有錯誤,敬請指正。
我要糾正推薦答案中的說法!
del并不是用來“刪除引用指向的內(nèi)存空間”,python中的del和c++中的delete是完全兩個概念,不要誤人子弟。。
一般來講,del是用來刪除變量的引用的,例如a = 1; del a,這里a是對1這個值的引用(python中所有的變量都可視作引用),而del a就是刪除這一引用關(guān)系,也就是說,1不再被a這個變量引用了,同時a這個變量名也從變量表中剔除了。
如果還是不太清楚,我舉這個例子你就明白了:
a = object()
b = a
del a
print b
print a # 該句會報a未定義的異常
這段代碼中,a引用了一個新對象object(),而b=a使得b也引用了這個對象,a和b雖然是兩個變量,但它們引用的是同一個對象,有點類似于c++中的兩個指針指向同一個對象。
而后面del a僅僅只是把a(bǔ)這個變量對object()的引用刪掉了,同時a的變量名也失效了,但并不表示object()這個對象被刪除了,它還在,并且b還引用著它呢。從后面print b能正常輸出就可以看出這一點。
python的內(nèi)存釋放采用的是引用計數(shù)機(jī)制,也就是當(dāng)一個對象沒有任何引用它的變量了,那么它就會自動被釋放,無需人工干預(yù)。
此外,del對于不同的對象也會有不同的功能,這取決于對象本身對__del__系統(tǒng)方法的實現(xiàn)。例如一個列表a = [1,2,3],del a[0]表示將列表的首項刪除,此時a就變成[2,3]了。如果是自定義的對象,那del的功能更是可以定義成你想要的任何樣子,詳情請參考python幫助中的__del__詞條。
字典是一種通過名字或者關(guān)鍵字引用的得數(shù)據(jù)結(jié)構(gòu),其鍵可以是數(shù)字、字符串、元組,這種結(jié)構(gòu)類型也稱之為映射。字典類型是Python中唯一內(nèi)建的映射類型,基本的操作包括如下:
(1)len():返回字典中鍵—值對的數(shù)量;
(2)d[k]:返回關(guān)鍵字對于的值;
(3)d[k]=v:將值關(guān)聯(lián)到鍵值k上;
(4)del d[k]:刪除鍵值為k的項;
(5)key in d:鍵值key是否在d中,是返回True,否則返回False。
(6)clear函數(shù):清除字典中的所有項
(7)copy函數(shù):返回一個具有相同鍵值的新字典;deepcopy()函數(shù)使用深復(fù)制,復(fù)制其包含所有的值,這個方法可以解決由于副本修改而使原始字典也變化的問題
(8)fromkeys函數(shù):使用給定的鍵建立新的字典,鍵默認(rèn)對應(yīng)的值為None
(9)get函數(shù):訪問字典成員
(10)has_key函數(shù):檢查字典中是否含有給出的鍵
(11)items和iteritems函數(shù):items將所有的字典項以列表方式返回,列表中項來自(鍵,值),iteritems與items作用相似,但是返回的是一個迭代器對象而不是列表
(12)keys和iterkeys:keys將字典中的鍵以列表形式返回,iterkeys返回鍵的迭代器
(13)pop函數(shù):刪除字典中對應(yīng)的鍵
(14)popitem函數(shù):移出字典中的項
(15)setdefault函數(shù):類似于get方法,獲取與給定鍵相關(guān)聯(lián)的值,也可以在字典中不包含給定鍵的情況下設(shè)定相應(yīng)的鍵值
(16)update函數(shù):用一個字典更新另外一個字典
(17)?values和itervalues函數(shù):values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重復(fù)的元素
一、字典的創(chuàng)建
1.1 直接創(chuàng)建字典
d={'one':1,'two':2,'three':3}
printd
printd['two']
printd['three']
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
1.2 通過dict創(chuàng)建字典
# _*_ coding:utf-8 _*_
items=[('one',1),('two',2),('three',3),('four',4)]
printu'items中的內(nèi)容:'
printitems
printu'利用dict創(chuàng)建字典,輸出字典內(nèi)容:'
d=dict(items)
printd
printu'查詢字典中的內(nèi)容:'
printd['one']
printd['three']
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
items中的內(nèi)容:
[('one',1), ('two',2), ('three',3), ('four',4)]
利用dict創(chuàng)建字典,輸出字典內(nèi)容:
{'four':4,'three':3,'two':2,'one':1}
查詢字典中的內(nèi)容:
或者通過關(guān)鍵字創(chuàng)建字典
# _*_ coding:utf-8 _*_
d=dict(one=1,two=2,three=3)
printu'輸出字典內(nèi)容:'
printd
printu'查詢字典中的內(nèi)容:'
printd['one']
printd['three']
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
輸出字典內(nèi)容:
{'three':3,'two':2,'one':1}
查詢字典中的內(nèi)容:
二、字典的格式化字符串
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3,'four':4}
printd
print"three is %(three)s."%d
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'four':4,'three':3,'two':2,'one':1}
threeis3.
三、字典方法
3.1?clear函數(shù):清除字典中的所有項
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3,'four':4}
printd
d.clear()
printd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'four':4,'three':3,'two':2,'one':1}
{}
請看下面兩個例子
3.1.1
# _*_ coding:utf-8 _*_
d={}
dd=d
d['one']=1
d['two']=2
printdd
d={}
printd
printdd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'two':2,'one':1}
{}
{'two':2,'one':1}
3.1.2
# _*_ coding:utf-8 _*_
d={}
dd=d
d['one']=1
d['two']=2
printdd
d.clear()
printd
printdd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'two':2,'one':1}
{}
{}
3.1.2與3.1.1唯一不同的是在對字典d的清空處理上,3.1.1將d關(guān)聯(lián)到一個新的空字典上,這種方式對字典dd是沒有影響的,所以在字典d被置空后,字典dd里面的值仍舊沒有變化。但是在3.1.2中clear方法清空字典d中的內(nèi)容,clear是一個原地操作的方法,使得d中的內(nèi)容全部被置空,這樣dd所指向的空間也被置空。
3.2?copy函數(shù):返回一個具有相同鍵值的新字典
# _*_ coding:utf-8 _*_
x={'one':1,'two':2,'three':3,'test':['a','b','c']}
printu'初始X字典:'
printx
printu'X復(fù)制到Y(jié):'
y=x.copy()
printu'Y字典:'
printy
y['three']=33
printu'修改Y中的值,觀察輸出:'
printy
printx
printu'刪除Y中的值,觀察輸出'
y['test'].remove('c')
printy
printx
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
初始X字典:
{'test': ['a','b','c'],'three':3,'two':2,'one':1}
X復(fù)制到Y(jié):
Y字典:
{'test': ['a','b','c'],'one':1,'three':3,'two':2}
修改Y中的值,觀察輸出:
{'test': ['a','b','c'],'one':1,'three':33,'two':2}
{'test': ['a','b','c'],'three':3,'two':2,'one':1}
刪除Y中的值,觀察輸出
{'test': ['a','b'],'one':1,'three':33,'two':2}
{'test': ['a','b'],'three':3,'two':2,'one':1}
注:在復(fù)制的副本中對值進(jìn)行替換后,對原來的字典不產(chǎn)生影響,但是如果修改了副本,原始的字典也會被修改。deepcopy函數(shù)使用深復(fù)制,復(fù)制其包含所有的值,這個方法可以解決由于副本修改而使原始字典也變化的問題。
# _*_ coding:utf-8 _*_
fromcopyimportdeepcopy
x={}
x['test']=['a','b','c','d']
y=x.copy()
z=deepcopy(x)
printu'輸出:'
printy
printz
printu'修改后輸出:'
x['test'].append('e')
printy
printz
運算輸出:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
輸出:
{'test': ['a','b','c','d']}
{'test': ['a','b','c','d']}
修改后輸出:
{'test': ['a','b','c','d','e']}
{'test': ['a','b','c','d']}
3.3?fromkeys函數(shù):使用給定的鍵建立新的字典,鍵默認(rèn)對應(yīng)的值為None
# _*_ coding:utf-8 _*_
d=dict.fromkeys(['one','two','three'])
printd
運算輸出:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':None,'two':None,'one':None}
或者指定默認(rèn)的對應(yīng)值
# _*_ coding:utf-8 _*_
d=dict.fromkeys(['one','two','three'],'unknow')
printd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':'unknow','two':'unknow','one':'unknow'}
3.4?get函數(shù):訪問字典成員
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printd.get('one')
printd.get('four')
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
1
None
注:get函數(shù)可以訪問字典中不存在的鍵,當(dāng)該鍵不存在是返回None
3.5?has_key函數(shù):檢查字典中是否含有給出的鍵
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printd.has_key('one')
printd.has_key('four')
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
True
False
3.6?items和iteritems函數(shù):items將所有的字典項以列表方式返回,列表中項來自(鍵,值),iteritems與items作用相似,但是返回的是一個迭代器對象而不是列表
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
list=d.items()
forkey,valueinlist:
printkey,':',value
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
three :3
two :2
one :1
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
it=d.iteritems()
fork,vinit:
print"d[%s]="%k,v
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
d[three]=3
d[two]=2
d[one]=1
3.7?keys和iterkeys:keys將字典中的鍵以列表形式返回,iterkeys返回鍵的迭代器
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printu'keys方法:'
list=d.keys()
printlist
printu'\niterkeys方法:'
it=d.iterkeys()
forxinit:
printx
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
keys方法:
['three','two','one']
iterkeys方法:
three
two
one
3.8?pop函數(shù):刪除字典中對應(yīng)的鍵
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
d.pop('one')
printd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
{'three':3,'two':2}
3.9?popitem函數(shù):移出字典中的項
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
d.popitem()
printd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
{'two':2,'one':1}
3.10?setdefault函數(shù):類似于get方法,獲取與給定鍵相關(guān)聯(lián)的值,也可以在字典中不包含給定鍵的情況下設(shè)定相應(yīng)的鍵值
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printd.setdefault('one',1)
printd.setdefault('four',4)
printd
運算結(jié)果:
{'three':3,'two':2,'one':1}
{'four':4,'three':3,'two':2,'one':1}
3.11?update函數(shù):用一個字典更新另外一個字典
# _*_ coding:utf-8 _*_
d={
'one':123,
'two':2,
'three':3
}
printd
x={'one':1}
d.update(x)
printd
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':123}
{'three':3,'two':2,'one':1}
3.12?values和itervalues函數(shù):values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重復(fù)的元素
# _*_ coding:utf-8 _*_
d={
'one':123,
'two':2,
'three':3,
'test':2
}
printd.values()
運算結(jié)果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
[2,3,2,123]