Python列表、元組、字典和字符串的常用函數
一.列表方法
1.ls.extend(object)
向列表ls中插入object中的每個元素,object可以是字符串,元組和列表(字符串“abc”中包含3個元組),相當於ls和object合並。注意:object如果是整型,必須以列表的方式傳入,不可以以整型或元組的方式傳入
2.ls.append(object)
將object作為一個整體插入到ls最后,object可以是字符串,元組,列表和字典
3.ls.insert(index, object)
將object作為一個整體插入到ls指定的索引位置,object可以是字符串,元組,列表和字典
4.ls.pop([index])
刪除指定索引位置的元素,返回被刪除的元素,如果參數為空,則默認刪除最后一個索引位置的元素。注意:有返回值
5.ls.remove(value)
刪除指定的元素。注意:value是序列里面的值,不是索引
6.ls.reverse()
將列表中元素進行逆向排列
7.ls.sort(cmp=None, key=None, reverse=False)
默認將列表中元素進行升序排列,可以通過reverse參數將升序設為降序
二.列表,元組公用的方法
1.ls.count(value)
統計列表中元素value的個數
2.ls.index(value, [start, [stop]])
返回列表中指定元素所在的索引位置,可以通過start和stop參數設置搜索范圍。注意:如果不存在則會報出異常
三.字典方法
1.dic.clear()
刪除字典中所有項
2.dic.fromkeys(S[,v])
新建字典,鍵為S,值為v,如果S為長字符串,返回的鍵為字符串中的每一個字符,值將重復。注意:dic字典中的項不會改變
3.dic.get(k[,d])
獲取字典中指定鍵的值,如果k不屬於字典中的鍵,則返回None。注意:相當於dic[k],但是dic[k]如果k不屬於字典中的鍵,則報出異常
4.dic.setdefault(k[,d])
類似於dit.get(k,d)方法,如果k屬於字典中的鍵,則返回對應的值,否則,將往字典中插入鍵值
5.dic.has_key(k)
返回字典中是否包含鍵k,返回值為True和False
6.dic.items()
以列表的形式返回字典中的鍵值,每一對鍵值存放在元組中
7.dic.keys()
以列表的形式返回字典所有鍵
8.dic.values()
以列表的形式返回字典中所有值(values)
9.dic.iteritems()
鍵值迭代器,一般用於for循環
10.dic.iterkeys()
鍵迭代器,一般用於for循環
11.dic.itervaleus()
值迭代器,一般用於for循環
12.dic.viewitems()
返回字典中鍵值的視圖,單個鍵值對存放在元組中,所有鍵值對存放在列表中,返回類型為dict_items,也可以作為迭代用於for循環
13.dic.viewkeys()
返回字典中鍵的視圖,單個鍵存放在元組中,所有鍵存放在列表中,返回類型為dict_items,也可以作為迭代用於for循環
14.dic.viewvalues()
返回字典中值的視圖,單個值存放在元組中,所有值存放在列表中,返回類型為dict_items,也可以作為迭代用於for循環
15.dic.pop(k[,d])
刪除字典中指定鍵的值,並返回被刪除鍵的對應值
16.dic.popitem()
隨機刪除某個鍵值對,並返回被刪除鍵的對應值,無需往方法中傳入參數
17.dic.update([E, ]**F)
將字典E中的鍵值對更新到dic中,相當於列表dic和列表E 合並后更新到列表dic中
18.dic.copy()
淺復制:只復制字典中的父對象,對子對象采取引用的辦法。改變子對象的內容會影響到復制和被復制的字典。
例:
1 a ={'name':'ali','age':20,'score':[10,20,30]} 2 b = a.copy() 3 b['name'] = 'bai' 4 b['score'].remove(20) 5 print b 6 print a
輸出結果:
{'age': 20, 'score': [10, 30], 'name': 'bai'}
{'age': 20, 'score': [10, 30], 'name': 'ali'}
四.字符串方法
#字母處理
1.string.capitalize()
返回元字符串,且將字符串第一個字母轉為大寫,其它字母小寫
2.string.title()
返回元字符串,且將字符串第一個字母轉為大寫,其它字母小寫
3.string.swapcase()
用於對字符串的大小寫字母進行轉換,小寫字符轉為大寫,大寫字母轉為小寫
4.string.upper()
將字符串全部轉為大寫
5.string.lower()
將字符串全部轉為小寫
#去除空格或者指定字符串
1.string.strip([string])
去除字符串中首尾的字符串,不帶參數默認去除空格
2.string.lstrip([string])
去除字符串左邊字符串,不帶參數默認去除空格
3.string.rstrip([string])
去除字符串右邊字符串,不帶參數默認去除空格
#格式化對齊
1.string.center(width[, fillchar])
返回一個原字符串居中對齊,width為總長度,兩邊用一個字符fillchar填充,如果指定的長度小於原字符串的長度則返回原字符串。注意:如果fillchar超過1個長度或為非字符串或為漢字,則會報出異常
2.string.ljust(width[, fillchar])
返回原字符串左對齊,並使用空格填充至指定長度的新字符串,如果指定的長度小於原字符串的長度則返回原字符串。注意:如果fillchar超過1個長度或為非字符串或為漢字,則會報出異常
3.string.rjust(width[, fillchar])
返回原字符串右對齊,並使用空格填充至指定長度的新字符串,如果指定的長度小於字符串的長度則返回原字符串。注意:如果fillchar超過1個長度或為非字符串或為漢字,則會報出異常
4.string.zfill()
返回指定長度的字符串,原字符串右對齊,前面填充0
#替換
1.string.replace(old, new[, count])
用新的字符替換老字符,還可以指定替換的個數,默認全部替換
2.string.expandtabs([n])
將字符串中(tab符號)\t轉換成n個空格
#字符串搜索
1.string.find(sub [,start [,end]])
返回sub字符串第一次出現的索引位置,可以通過start和stop參數設置搜索范圍,如果未找到sub時返回-1
2.string.rfind(sub [,start [,end]])
返回sub字符串最后一次出現的索引位置,如果沒有匹配項則返回-1,可以通過start和stop參數設置搜索范圍
3.string.index(sub [,start [,end]])
類似於string.find()方法。注意:未找到sub時會報出異常
4.string.rindex(sub [,start [,end]])
類似於string.rfind()方法。注意:未找到sub時會報出異常
#字符串分割
1.string.split([sep [,maxsplit]])
用來根據指定的分隔符將字符串進行分割,不包含分隔符,結果存為列表,不指定sep時,默認將將空格作為分隔符
2.string.partition(sep)
用來根據指定的分隔符將字符串進行分割,分割點為首次出現sep的地方,且包含分隔符,結果存為元組,且固定為3個元素,如果sep不存在字符串中,則后面2個元素為空
3.string.rpartiton()
用來根據指定的分隔符將字符串進行分割,分割點為最后一次出現sep的地方,且包含分隔符,結果存為元組,且固定為3個元素,如果sep不存在字符串中,則前面2個元素為空
#字符串判斷
1.string.isupper()
返回字符串中是否全為大寫 --> True/False
2.string.islower()
返回字符串中是否全為小寫 --> True/False
3.string.isdigit()
返回字符串中是否只包含數字 --> True/False
4.string.isalpha()
返回字符串中是否只包含字母 --> True/False
5.string.isalnum()
返回字符串中是否只包含字母或數字 --> True/False
6.string.isspace()
返回字符串中是否只包含空格(tab也算空格) --> True/False
7.string.istitle()
返回字符串中首字母是否大寫 --> True/False
8.string.startswith(prefix[, start[, end]])
返回字符串是否以某字符串開始,可以通過start和stop參數設置搜索范圍
9.string.endswith(suffix[, start[, end]])
返回字符串是否以某個字符串結束 可以通過start和stop參數設置搜索范圍
#其它
1.string.count(sub[, start[, end]])
計數字符串中某子集的數量,可以通過start和stop參數設置搜索范圍
2.len(string)
獲取字符串的長度
3.list(string)
字符串轉列表
4.string.join(iterable)
列表轉字符串,用於將序列中的元素以指定的字符string連接生成一個新的字符串。注意:iterable只能是字符串類型,否則會報出異常
5.string.encode(encoding='UTF-8',errors='strict')
以 encoding 指定的編碼格式編碼字符串
6.string.decode(encoding='UTF-8',errors='strict')
解碼字符串,出錯默認報ValueError,除非errors是ignore或replace
7.string.translate(table [,deletechars])
根據參數table給出的表(包含 256 個字符)轉換字符串的字符, 要過濾掉的字符放到deletechars參數中
例:
1 #!/usr/bin/python 2 #coding:utf8 3 import string 4 intab = "abcd" 5 outtab = "1234" 6 tab = string.maketrans(intab,outtab) 7 strs = "abcd####abcdefg" 8 print strs.translate(tab) 9 print strs.translate(tab,'ab')
輸出結果:
1234####1234efg 34####34efg
8.string.format(*args, **kwargs)
它通過{}和:來代替%
“映射”示例:
通過位置
1 print '{0}#{1}'.format('YYY',10) 2 print ('{}'+'#'+'{}').format('YYY','NNN') 3 print '{1}#{0}#{1}'.format('YYY','NNN')
輸出結果:
YYY#10 YYY#NNN NNN#YYY#NNN
通過關鍵字參數
1 str1 ='{name}'+' is '+'{age}' 2 print str1.format(name='ali',age=20)
輸出結果:
ali is 20
通過對象屬性
1 class students(): 2 def __init__(self,name,age): 3 self.name,self.age = name,age 4 5 def __str__(self): 6 str1 = '{self.name}'+' is '+'{self.age}' 7 return str1.format(self=self) 8 9 print str(students("ali",20))
輸出結果:
ali is 20
通過下標
1 name = ['ali','baidu'] 2 age = [10,20] 3 str1 = '{0[0]},{0[1]}'+' are '+'{1[0]},{1[1]}' 4 print str1.format(name,age)
輸出結果:
ali,baidare 10,20
有了這些便捷的“映射”方式,我們就有了偷懶利器。基本的python知識告訴我們,list和tuple可以通過“打散”成普通參數給函數,而dict可以打散成關鍵字參數給函數(通過和*)。所以可以輕松的傳個list/tuple/dict給format函數。非常靈活。
格式限定符
它有着豐富的的“格式限定符”(語法是{}中帶:號)
比如:填充與對齊
填充常跟對齊一起使用
^、<、>分別是居中、左對齊、右對齊,后面帶寬度
:號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充,效果相當於字符串函數center,ljust和rjust。
例:
1 print '{:a^10}'.format('123') 2 print '123'.center(10,'a') 3 print '{:a<10}'.format('123') 4 print '123'.ljust(10,'a') 5 print '{:a>10}'.format('123') 6 print '123'.rjust(10,'a')
輸出結果:
aaa123aaaa
aaa123aaaa
123aaaaaaa
123aaaaaaa
aaaaaaa123
aaaaaaa123
精度與類型
精度常跟類型f一起使用
1 print '{:.2f}'.format(123.456)
輸出結果:
123.46
其中.2表示長度為2的精度,f表示float類型。
分隔符用,號還能用來做金額的千位分隔符。
1 print '{:,}'.format(123456789)
輸出結果:
123,456,789
其他類型
主要就是進制了b、d、o、x分別是二進制、十進制、八進制、十六進制。
1 print '{:b}'.format(17) 2 print '{:d}'.format(17) 3 print '{:o}'.format(17) 4 print '{:x}'.format(17)
輸出結果:
10001 17 21 11
