首先推薦一個初學Python的網站,相信不少人都閱讀過,廖雪峰的Python教程:
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
下面的很多細節知識在廖雪峰的教程中也能找到,在這里算是做一次強調吧:
關于List(列表)
列表操作包含以下函數:
- cmp(list1, list2) 比較兩個列表的元素
- len(list) 列表元素個數
- max(list) 返回列表元素最大值
- min(list) 返回列表元素最小值
- list(seq) 將元組轉換為列表
列表操作包含以下方法:
- list.append(var)
- list.insert(index,var)
- list.pop(var) 返回最后一個元素,并從list中刪除
- list.remove(var) 刪除第一次出現的該元素
- list.count(var) 該元素在列表中出現的個數
- list.index(var) *該元素第一個匹配項的索引位置,無則拋異常 *
- list.extend(list2) 合并list2到list上
- list.sort([func]) 對原列表進行排序
- 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']
關鍵字del
lst = ['a','b','c']
del lst[1]
print lst
['a', 'c']
enumerate(list)
函數用于遍歷序列中的元素以及它們的下標:
for (i, j) in enumerate(lst):
print i, j
0 a
1 c
其他
- 關鍵字in判斷列表元素是否存在
- 列表截取規則:list[i] list[-i] list[:i] list[i:] 不再詳述
關于Tuple(元組)
tuple和list非常類似,但是tuple一旦初始化就不能修改
普通定義:t = (1, 2)
定義空元組:t = ()
定義單個元組:t=(1,) 沒有逗號會被認為定義了一個int數字1
定義包含list的元組:t = ('a', 'b', ['A', 'B']) 此時可以修改['A', 'B']中的元素,因為['A', 'B']是一個list,而python中的list是可變類型,元組t只能保證其內部的非可變類型一旦初始化就不能修改,原理是tuple的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!
** Python的基本類型如字符串(str)、整數(int)、浮點數(float)都是不可變的,元組(tuple)也是不可變的,而列表(list),字典(dict)是可變的 **
關于Dict(字典)
接著上面的討論延伸,dict有一對對的key-value組合而成,那么什么樣的數據類型能夠作為key呢?
其實就是不可變類型的數據,因為key必須是確定的,也就是說上面提到的字符串(str)、整數(int)、浮點數(float)、元組(tuple)都能作為dict的key。而dict的value沒有限制,可以是任何類型的數據。
dict常用方法:
- dict.get(key, 0) 同dict[key],多了個沒有則返回缺省值,0
- dict.has_key(key) 有該鍵返回TRUE,否則FALSE
- dict.keys() 返回字典鍵的列表
- dict.values() 返回字典值的列表
- dict.items() 返回字典鍵和值的列表
- dict.update(dict2) 增加合并字典
- dict.popitem() 得到一個pair,并從字典中刪除它,已空則拋異常
- dict.clear() 清空字典,同del dict
- dict.cmp(dict1,dict2) 比較字典,(優先級為元素個數、鍵大小、鍵值大小) 第一個大返回1,小返回-1,一樣返回0
- dict1 = dict 別名,指向同一地址
- dict2=dict.copy() 淺拷貝,它復制了對象,但對于對象中的元素,依然使用引用
- dict2=copy.deepcopy(dict1) 深拷貝,它完全復制了包含對象中的元素
dict排序:
sorted(numtimeAll.items(), key=lambda x:x[1])
cmp:用于比較的函數,比較什么由key決定,有默認值,迭代集合中的一項;key:用列表元素的某個屬性和函數進行作為關鍵字,有默認值,迭代集合中的一項;reverse:排序規則 reverse = True 或者 reverse = False,有默認值。返回值:是一個經過排序的可迭代類型,與iterable一樣。 注:一般來說,cmp和key可以使用lambda表達式。
sort()與sorted()的不同在于,sort是在原位重新排列列表,而sorted()是產生一個新的列表。
關于Str(字符串)
關于迭代器
關于生成器
關于裝飾器
(待補充......)