1. 程式人生 > >【python】python學習筆記

【python】python學習筆記

python

List:列表

1)列表表達式:有時可以很方便的代替函數實現一些功能

1.1)字符串居中(長度為9個字符)
>>> a = ["123","456","abc","Abc","AAA"]
>>> [k.center(9) for k in a]
[‘   123   ‘, ‘   456   ‘, ‘   abc   ‘, ‘   Abc   ‘, ‘   AAA   ‘]

1.2)得到a中僅有字母組成的字符串,將其變為大寫
>>> [k.upper() for k in a if k.isalpha()]
[‘ABC‘, ‘ABC‘, ‘AAA‘]

2)常用操作方法

增加元素
a.append(1)  在列表最後插入數據1
a.insert(0,1)  索引0處插入數據1
a.extend(b)  在列表a中追加列表b

刪除元素
a.pop()  刪除最後一個元素,並返回其值
a.remove("a")  刪除元素a,從左到右依次刪除,無返回值

其他方法
a.reverse()  將列表a反序
a.count(3)  元素3出現的次數
a.index(3)  元素3在列表中的索引
str.replace(sub, new_sub)  用一個新的字符串new_sub替換str中的sub

Str:字符串

1)判斷字符串類別的常用方法:滿足返回True

str.isalnum()  所有字符為數字0-9或者A-Z或者a-z
str.isalpha()  所有字符為字母a-z或者A-Z
str.isdigit()  所有字符為數字0-9
str.islower()  所有字符為小寫字母
str.isupper()  所有字符為大寫字母
str.istitle()  首字母大寫
str.isspace()  所有字符為空白字符

2)在字符串中查找子串

2.1)find
s.find(substring,[start,[end]])  如果找到,返回索引;找不到返回-1

2.2)遍歷字符串
for (index,char) in enumerate(S):  enumerate()在每次循環中,返回的是一個包含兩個
 元素的定值表(tuple),兩個元素分別賦予index和char

3)格式化

s.ljust(width)  左對齊;如果s長度小於width;那麽後面補空格
s.rjust(width)  右對齊
s.center(width) 居中
s.strip() s.lstrip() s.rstrip()  去掉空格
s.split()  分割字符串(默認為空格),返回list結果
"\n".join([1,2,3])  以\n連接[1,2,3];字符串連接還可以使用+

tuple:常量list

Dict:字典

1)常見操作

a.clear()  清空字典
a.copy()  拷貝字典:1> b=a.copy(),此時b時獨立的,改變b不會影響a;2>b=a,此時b指向a的內存空
間值,因此修改b會影響a
a.get(key)  若key存在,則返回a[key];否則,返回None
a.get(key,default) 和上面不同的是,若key不存在,返回default
a.has_key(key)  判斷字典中是否存在key;等於key in a.keys()

遍歷字典
dic.keys()、dic.values()、dic.items()  獲取所有鍵、所有值、所有元素(鍵值對)

函數

1)傳參類型:傳的是name(命名空間)指向內存地址中的值

位置傳參;包裹傳遞(*args/**args);關鍵字傳參
傳參的規則:先位置,再關鍵字,再包裹位置,再包裹關鍵字

2)不可變對象傳參、可變對象傳參

對象:分為不可變對象(int/tuple/string等)和可變對象(list/dict等)

 a = 1

 def change_integer(a):
    a = a + 1
    return a

 print change_integer(a)
 print a

>>>輸出2 1  不可變對象傳參:基本數據類型的變量,變量傳遞給函數後,函數會在內存中復制
一個新的變量,從而不影響原來的變量

 b = [1,2,3]

 def change_list(b):
    b[0] = b[0] + 1
    return b

 print change_list(b)
 print b  
 >>>輸出 [2,2,3] [2,2,3]  可變對象傳參;表來說,表傳遞給函數的是一個指針,指針指向
 序列在內存中的位置,在函數中對表的操作將在原有內存中進行,從而影響原有變量

3)常見函數

lambda函數
 func = lambda x,y: x + y
 print func(3,4)
 
 高階函數:函數作為參數傳遞
 def test(f, a, b):    print ‘test‘
    print f(a, b)

 test((lambda x,y: x**2 + y), 3, 5)
 
 map函數:依次將函數對象作用於表中元素,第一個參數為函數
 re = map((lambda x: x+3),[1,3,5,6])
 re = map((lambda x,y: x+y),[1,2,3],[6,7,9])
 
 filter函數:過濾;如果函數對象返回的是True,則該次的元素被儲存於返回的表中
 def func(a):    
     if a > 100:        
         return True    
     else:        
         return False
         
 print filter(func,[10,56,101,500])
 
 reduce:依次疊加進行操作;第一個函數必須要有2個參數
 print reduce((lambda x,y: x+y),[1,2,5,7,9])


本文出自 “孔小發愛吃魚” 博客,謝絕轉載!

【python】python學習筆記