Python語(yǔ)法細(xì)節(jié)補(bǔ)充

首先推薦一個(gè)初學(xué)Python的網(wǎng)站,相信不少人都閱讀過(guò),廖雪峰的Python教程:
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

下面的很多細(xì)節(jié)知識(shí)在廖雪峰的教程中也能找到,在這里算是做一次強(qiáng)調(diào)吧:

關(guān)于List(列表)

列表操作包含以下函數(shù):
  • cmp(list1, list2) 比較兩個(gè)列表的元素
  • len(list) 列表元素個(gè)數(shù)
  • max(list) 返回列表元素最大值
  • min(list) 返回列表元素最小值
  • list(seq) 將元組轉(zhuǎn)換為列表
列表操作包含以下方法:
  • list.append(var)
  • list.insert(index,var)
  • list.pop(var) 返回最后一個(gè)元素,并從list中刪除
  • list.remove(var) 刪除第一次出現(xiàn)的該元素
  • list.count(var) 該元素在列表中出現(xiàn)的個(gè)數(shù)
  • list.index(var) *該元素第一個(gè)匹配項(xiàng)的索引位置,無(wú)則拋異常 *
  • list.extend(list2) 合并list2到list上
  • list.sort([func]) 對(duì)原列表進(jìn)行排序
  • list.reverse() 反向列表中元素
list 操作符: + *

print [1,2] + [2,3]
[1, 2, 2, 3]

print ['A']*10
['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']

關(guān)鍵字del

lst = ['a','b','c']
del lst[1]
print lst
['a', 'c']

enumerate(list)

函數(shù)用于遍歷序列中的元素以及它們的下標(biāo):
for (i, j) in enumerate(lst):
print i, j
0 a
1 c

其他
  • 關(guān)鍵字in判斷列表元素是否存在
  • 列表截取規(guī)則:list[i] list[-i] list[:i] list[i:] 不再詳述

關(guān)于Tuple(元組)

tuple和list非常類似,但是tuple一旦初始化就不能修改
普通定義:t = (1, 2)
定義空元組:t = ()
定義單個(gè)元組:t=(1,) 沒(méi)有逗號(hào)會(huì)被認(rèn)為定義了一個(gè)int數(shù)字1
定義包含list的元組:t = ('a', 'b', ['A', 'B']) 此時(shí)可以修改['A', 'B']中的元素,因?yàn)閇'A', 'B']是一個(gè)list,而python中的list是可變類型,元組t只能保證其內(nèi)部的非可變類型一旦初始化就不能修改,原理是tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向'a',就不能改成指向'b',指向一個(gè)list,就不能改成指向其他對(duì)象,但指向的這個(gè)list本身是可變的!
** Python的基本類型如字符串(str)、整數(shù)(int)、浮點(diǎn)數(shù)(float)都是不可變的,元組(tuple)也是不可變的,而列表(list),字典(dict)是可變的 **

關(guān)于Dict(字典)

接著上面的討論延伸,dict有一對(duì)對(duì)的key-value組合而成,那么什么樣的數(shù)據(jù)類型能夠作為key呢?
其實(shí)就是不可變類型的數(shù)據(jù),因?yàn)閗ey必須是確定的,也就是說(shuō)上面提到的字符串(str)、整數(shù)(int)、浮點(diǎn)數(shù)(float)、元組(tuple)都能作為dict的key。而dict的value沒(méi)有限制,可以是任何類型的數(shù)據(jù)。

dict常用方法:
  • dict.get(key, 0) 同dict[key],多了個(gè)沒(méi)有則返回缺省值,0
  • dict.has_key(key) 有該鍵返回TRUE,否則FALSE
  • dict.keys() 返回字典鍵的列表
  • dict.values() 返回字典值的列表
  • dict.items() 返回字典鍵和值的列表
  • dict.update(dict2) 增加合并字典
  • dict.popitem() 得到一個(gè)pair,并從字典中刪除它,已空則拋異常
  • dict.clear() 清空字典,同del dict
  • dict.cmp(dict1,dict2) 比較字典,(優(yōu)先級(jí)為元素個(gè)數(shù)、鍵大小、鍵值大小) 第一個(gè)大返回1,小返回-1,一樣返回0
  • dict1 = dict 別名,指向同一地址
  • dict2=dict.copy() 淺拷貝,它復(fù)制了對(duì)象,但對(duì)于對(duì)象中的元素,依然使用引用
  • dict2=copy.deepcopy(dict1) 深拷貝,它完全復(fù)制了包含對(duì)象中的元素
dict排序:

sorted(numtimeAll.items(), key=lambda x:x[1])
cmp:用于比較的函數(shù),比較什么由key決定,有默認(rèn)值,迭代集合中的一項(xiàng);key:用列表元素的某個(gè)屬性和函數(shù)進(jìn)行作為關(guān)鍵字,有默認(rèn)值,迭代集合中的一項(xiàng);reverse:排序規(guī)則 reverse = True 或者 reverse = False,有默認(rèn)值。返回值:是一個(gè)經(jīng)過(guò)排序的可迭代類型,與iterable一樣。 注:一般來(lái)說(shuō),cmp和key可以使用lambda表達(dá)式。
sort()與sorted()的不同在于,sort是在原位重新排列列表,而sorted()是產(chǎn)生一個(gè)新的列表。

關(guān)于Str(字符串)

關(guān)于迭代器

關(guān)于生成器

關(guān)于裝飾器

(待補(bǔ)充......)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容