Python列表、元組、字典和字符串的常用函數


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM