關於python學習中的知識點
字串操作
字串的替換、刪除、擷取、複製、連線、比較、查詢、分割等
使用type獲取建立物件的類 type(name)
使用dir獲取類的成員dir(name)
使用vars獲取類的成員和各個成員的值
capitalize
功能:字串首字母大寫
name = 'swhthaitun'
name.capitalize()
返回結果:'Swht'
casefold()首字母小寫
name = 'HelloWord'
reault = name.casefold()
print(reault)
返回結果:helloword
casefold
功能:將字串中所有的大寫字母轉換成小寫字母
s1 = "['bsondump', 'mongo', 'mongod', 'mongodump', 'mongoexport', 'mongofiles', 'mongoimport', 'mongooplog', 'mongoperf', 'mongoLLKJKKore', 'mongos', 'UUUngostat', 'monGGtop']"
s1.casefold()
返回結果:"['bsondump', 'mongo', 'mongod', 'mongodump', 'mongoexport', 'mongofiles', 'mongoimport', 'mongooplog', 'mongoperf', 'mongollkjkkore', 'mongos', 'uuungostat', 'monggtop']"
center
功能:字串寬度填充,使用原有字串+填充字元構成指定長度的新的字串
name = 'swhthaitun'
name.center(15)
返回結果:' swhthaitun ' #預設以空格進行填充
name.center(16,'*')
返回結果:'***swhthaitun***'
功能:字串居中,以‘*’分割(20為新產生字串的總的寬度)
name = 'HelloWord'
reault = name.center(20,'*')
print(reault)
返回結果:*****HelloWord******
count
功能:統計某個字元在字串中出現的次數,或在字串指定區間內完成上述操作
name = 'swhthaitun'
name.count('h')
返回結果:2
name.count('h',0,3) #從索引值0-3範圍的字元中統計'h'出現的次數
返回結果:1
功能:統計子序列出現的次數
name = 'HelloWord'
reault = name.count('W') #如果換成'w',返回結果為0,python對大小寫敏感
print(reault)
返回結果:1
name = 'HelloWord'
reault = name.count('l',0,3) #統計單個字元出現的次數,可以指定起始範圍,另外在python中起始範圍講究顧頭不顧尾的原則,即[0,3)
print(reault)
encode
功能:對字串進行編碼操作
name = 'swhthaitun'
name.encode()
返回結果:b'swhthaitun'
功能:轉變字串的編碼
name = '南非波波'
reault = name.encode('gbk')
print(reault)
返回結果:b'\xc4\xcf\xb7\xc7\xb2\xa8\xb2\xa8
endswith
功能:判斷字串是否以某個字串結尾的,返回值為bool型
name = 'swhthaitun'
name.endswith('s')
返回結果:False
name.endswith('n')
返回結果:True
name.endswith('tun')
返回結果:True
name = 'Iamalatterboy'
reault = name.endswith('y')
print(reault)
返回結果:True
expandtabs
功能:將製表符'\t'轉換成指定寬度的tab鍵分割,預設tabsize=8
li = 'sw\tht'
li.expandtabs(4)
返回結果:'sw ht'
li.expandtabs()
返回結果:'sw ht'
find
功能:在字串中查詢指定字串,找不到時返回-1
name = 'swht'
name.find('s')
返回結果:0
name.find('h')
返回結果:2
format
功能:格式化輸出字串
li = 'I\'m {},{}' #兩個'{}'是佔位符
li.format('swht','歡迎來中國')
返回結果:"I'm swht,歡迎來中國"
參考:http://blog.chinaunix.net/uid-23802873-id-4477364.html
index
功能:在字串中查詢指定的字串,找不到時直接報錯
name = 'swhthaitun'
name.index('w')
返回結果:1
join()
功能:字串連線
name = 'swhthaitun'
'*'.join(name)
返回結果:'s*w*h*t*h*a*i*t*u*n'
isalnum
功能:檢查判斷字串是否包含字母數字字元(http://www.yiibai.com/python/string_isalnum.html)
name = 'swhthaitun'
name.isalnum()
返回結果:True
isalpha
功能:檢測字串是否只由字母組成。
name = 'swhthaitun'
name.isalpha()
返回結果:True
isdecimal
功能:檢查字串是否只包含十進位制字元。這種方法只存在於unicode物件。
name = 'swhthaitun'
name.isdecimal()
返回結果:False
isdigit
功能:檢測字串是隻由數字組成
name = 'swhthaitun'
name.isdigit()
返回結果:False
isidentifier
功能:檢測字串是否是字母開頭
name = 'swhthaitun'
name.isidentifier()
返回結果:True
name = '1swhthaitun'
name.isidentifier()
返回結果:False
isnumeric
功能:檢測字串是否只由數字組成。這種方法是隻針對unicode物件。
name = 'swhthaitun'
name.isnumeric()
返回結果:False
Li = '5523'
Li.isnumeric()
返回結果:True
isprintable
功能:判斷字串中所有字元是否都屬於可見字元
a = "\tPuppy"
a.isprintable()
返回結果:False
name = 'swhthaitun'
name.isprintable()
返回結果:True
isspace
功能:檢測字串是否為空格
name = 'swhthaitun'
name.isspace()
返回結果:False
Li = ' '
Li.isspace()
返回結果:True
istitle
功能:判斷字串是否適合當作標題(其實就是每個單詞首字母大寫)
a = "a puppy"
b = "Puppy"
a.istitle()
返回結果:False
b.istitle()
返回結果:True
isupper
功能:判斷字串中所有字母字元是否都是大寫字母
a = "puppy"
b = "PUPPY"
a.isupper()
返回結果:False
b.isupper()
返回結果:True
ljust
功能:返回一個原字串左對齊,並使用空格填充至指定長度的新字串。如果指定的長度小於原字串的長度則返回原字串。
語法:str.ljust(width[, fillchar])
width -- 指定字串長度。
fillchar -- 填充字元,預設為空格。
name = 'swhthaitun'
name.ljust(50,'*')
返回結果:'swhthaitun****************************************'
lower
功能:將所有的字母轉換成小寫字母
name = 'SWHT'
name.lower()
返回結果:'swht'
lstrip
功能:去除字串左邊開頭的空格
name = ' swht '
name.lstrip()
返回結果:'swht '
rstrip
功能:去除字串右邊結尾的空格
name = ' swht '
name.rstrip()
返回結果:' swht'
strip
功能:去除字串兩邊的空格
name = ' swht '
name.rstrip()
返回結果:'swht'
maketrans
功能:用於建立字元對映的轉換表,對於接受兩個引數的最簡單的呼叫方式,第一個引數是字串,表示需要轉換的字元,第二個引數也是字串表示轉換的目標。
注:兩個字串的長度必須相同,為一一對應的關係。
語法:str.maketrans(intab, outtab)
引數:intab -- 字串中要替代的字元組成的字串。
outtab -- 相應的對映字元的字串。
intab = "swhtr"
outtab = "12345"
name = "hjjksknsnjmk"
name.maketrans(intab, outtab)
返回結果:{104: 51, 114: 53, 115: 49, 116: 52, 119: 50}
partition
功能:根據指定的分隔符將字串進行分割。
如果字串包含指定的分隔符,則返回一個3元的元組,第一個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串。
name = 'swht'
li = 'hhsslswhtolljm'
li.partition(name)
返回結果:('hhssl', 'swht', 'olljm')
replace
功能:把字串中的 old(舊字串) 替換成 new(新字串),如果指定第三個引數max,則替換不超過 max 次。
語法:str.replace(old, new[, max])
引數:old -- 將被替換的子字串。
new -- 新字串,用於替換old子字串。
max -- 可選字串, 替換不超過 max 次
str = "this is string example....wow!!! this is really string"
str.replace("is", "was")
返回結果:'thwas was string example....wow!!! thwas was really string'
str.replace("is", "was", 3)
返回結果:'thwas was string example....wow!!! thwas is really string'
split
功能:字串分割,預設是空格
name.split()
返回結果:['swht']
name.split('s') #以's'字元進行分割
返回結果:['', 'wht']
**__add__**
功能:在字串後面增加指定的字元或字串
name = 'swht'
name.__add__('e')
返回結果:'swhte'
li = 'hjh'
name.__add__(li)
返回結果:'swhthjh'
**__contains__**
功能:判斷指定字串是否包含在字串中,返回值為True和False
name = 'swht'
name.__contains__('s')
返回結果:True
**__eq__**
功能:判斷字串是否相等,返回值為True和False
name = 'swht'
li = 'test'
name.__eq__(li)
返回結果:False
列表操作
append
功能:列表追加元素
name = ['sd','dfdf','drer']
name.append('sdsd')
返回結果:name
['sd', 'dfdf', 'drer', 'sdsd']
clear
功能:情況列表元素
name = ['sd','dfdf','drer']
name.clear()
返回結果:name
[]
copy
功能:淺拷貝,即只拷貝第一層的元素
name = ['sd','dfdf','drer']
li = ['ssd']
li = name.copy()
返回結果:li
['sd', 'dfdf', 'drer']
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
li = ['ssd']
li = name.copy()
返回結果:li
['sd', 'dfdf', 'drer', ['sddss', 'sdsdsd']]
count
功能:統計列表指定元素個數
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.count('sd')
返回結果:1
li = ['sd','sdsds',['sd','dffdg',],]
li.count('sd') #只統計第一層的元素個數
返回結果:1
extend
功能:追加字元元素或列表元素
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
li = ['sd','sdsds',['sd','dffdg',],]
name.extend('ss')
返回結果:name
['sd', 'dfdf', 'drer', ['sddss', 'sdsdsd'], 's', 's']
name.extend('d')
返回結果:name
['sd', 'dfdf', 'drer', ['sddss', 'sdsdsd'], 's', 's', 'd']
name.extend(li)
返回結果:name
['sd', 'dfdf', 'drer', ['sddss', 'sdsdsd'], 's', 's', 'd', 'sd', 'sdsds', ['sd', 'dffdg']]
index
功能:定位列表中某元素
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.index('sd')
返回結果:0
name.index('drer')
返回結果:2
返回結果:name.index('dr') #當出現某元素不在列表中的時候會直接報錯
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'dr' is not in list
insert
功能:在指定索引位置的元素前面插入新的元素
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.insert(3,'sd')
返回結果:name
['sd', 'dfdf', 'drer', 'sd', ['sddss', 'sdsdsd']]
pop
功能:刪除指定索引值的元素,返回值為當前刪除的元素的值。不指定索引值,預設刪除最後一個元素
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.pop(3)
返回結果:'sd'
remove
功能:刪除列表中指定的元素
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.remove('sd')
name
返回結果:['dfdf', 'drer', ['sddss', 'sdsdsd']]
reverse
功能:用於反向列表中元素。
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.reverse()
name
返回結果:[['sddss', 'sdsdsd'], 'drer', 'dfdf', 'sd']
sort
功能:對單層列表進行元素的排序
name = ['sd','dfdf','drer',]
name.sort()
name
返回結果:['dfdf', 'drer', 'sd']
name = ['sd','dfdf','drer',['sddss','sdsdsd']]
name.sort() #報錯的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
字典操作
clear
功能:清空字典
dict_li = {'users':'swht','age':'18',}
dict_li.clear()
返回結果:dict_li
{}
copy
功能:淺拷貝
dict_li = {'users':'swht','age':'18',}
dict_li.copy()
返回結果:{'age': '18', 'users': 'swht'}
dict_li = {'users':'swht','age':'18','address':{'sd':'dz'}}
dict_li.copy()
返回結果:{'age': '18', 'users': 'swht', 'address': {'sd': 'dz'}}
fromkeys()
功能:用於建立一個新字典,以序列seq中元素做字典的鍵,value為字典所有鍵對應的初始值。
語法:dict.fromkeys(seq[, value]))
引數:seq -- 字典鍵值列表。
value -- 可選引數, 設定鍵序列(seq)的值。
li = ['users','age']
dict_li = dict.fromkeys(li,'swht')
返回結果:dict_li
{'age': 'swht', 'users': 'swht'}
get
功能:獲取字典的value值
dict_li = {'users':'swht','age':'18',}
dict_li.get('users')
返回結果:'swht'
items
功能:返回可遍歷的(鍵, 值) 元組陣列
dict_li = {'users':'swht','age':'18',}
dict_li.items()
返回結果:dict_items([('age', '18'), ('users', 'swht')])
keys
功能:獲取字典可遍歷的鍵
dict_li = {'users':'swht','age':'18',}
dict_li.keys()
返回結果:dict_keys(['age', 'users'])
pop
功能:刪除字典中指定的鍵值
dict_li = {'users':'swht','age':'18',}
dict_li.pop('age')
返回結果:'18'
popitem
功能:隨機返回並刪除字典中的一對鍵和值
dict_li = {'users':'swht','age':'18',}
dict_li.popitem()
返回結果:('age', '18')
dict_li
{'users': 'swht'}
setdefault
功能:查詢鍵值,如果鍵不已經存在於字典中,將會新增鍵並將值設為預設值。
dict_li = {'users':'swht','age':'18',}
dict_li.setdefault('ID',5)
返回結果:5
dict_li
返回結果:{'age': '18', 'users': 'swht', 'ID': 5}
update
功能:把指定字典的鍵值更新到當前字典中
dict_li = {'users':'swht','age':'18',}
dict_ai = {'address':'山東'}
dict_li.update(dict_ai)
dict_li
返回結果:{'age': '18', 'users': 'swht', 'address': '山東'}
values
功能:獲取字典的所有值
dict_li = {'age': '18', 'users': 'swht', 'address': '山東'}
dict_li.values()
返回結果:dict_values(['18', 'swht', '山東'])
集合操作
set集合是一個無序且不重複的集合。建立一個set集合:
name = set('sdd')
name
返回結果:{'d', 's'}
add
功能:增加集合元素
name = {'d', 's'}
name.add('d')
name
返回結果:{'d', 's'}
name.add('sd')
name
返回結果:{'sd', 'd', 's'}
clear
功能:清空集合元素
name = {'d', 's'}
name.clear()
name
返回結果:{}
copy
功能:淺拷貝
name = {'sd', 'd', 's'}
li = name.copy()
返回結果:li
{'sd', 'd', 's'}
difference
name.difference(li)
set()
>>> name.difference()
{'sd', 'd', 's'}
difference_update
功能:刪除當前set中的所有包含在 new set 裡的元素
li = ('s', 'd')
name = {'sd', 'd', 's'}
name.difference_update(li)
name
返回結果:{'sd'}
discard
功能:移除元素
name = {'sd', 'd', 's'}
name.discard('s')
返回結果:name
{'sd', 'd'}
intersection
功能:取交集,建立新的set集合
li = ('s', 'd')
name = {'sd', 'd', 's'}
name.intersection(li)
返回結果:{'d', 's'}
intersection_update
功能:取交集,更新原來的set集合
li = ('s', 'd')
name = {'sd', 'd', 's'}
name.intersection_update(li)
返回結果:{'d', 's'}
isdisjoint
功能:判斷沒有交集,返回True,否則,返回False
li = {'s', 'd'}
name = {'sd', 'd', 's'}
name.isdisjoint(li)
issubset
功能:判斷是否是子集
li = {'s', 'd'}
name = {'sd', 'd', 's'}
name.issubset(li) #判斷name是不是li的子集
返回結果:False
li.issubset(name) #判斷li是不是name的子集
返回結果:True
issuperset
功能:判斷是否是父集
li = {'s', 'd'}
name = {'sd', 'd', 's'}
name.issuperset(li) #判斷name是不是li的父集
返回結果:True
li.issuperset(name) #判斷li是不是name的父集
返回結果:False
pop
功能:移除集合元素
name = {'sd', 'd', 's'}
name.pop()
返回結果:'sd' #同一個集合,刪除集合元素的順序固定
se1 = {'a','s','sb'}
se1.pop()
返回結果:'sb'
remove
功能:移除指定集合元素
name = {'sd','d','s'}
name.remove('s')
返回結果:name
{'sd', 'd'}
symmetric_difference
功能:去兩個集合的差集,建立新的set集合物件
name = {'sd', 'd', 's'}
li = {'s', 'd'}
name.symmetric_difference(li)
返回結果:{'sd'}
symmetric_difference_update
功能:去兩個集合的差集,更新原來的集合物件
name = {'sd', 'd', 's'}
li = {'s', 'd'}
name.symmetric_difference_update(li)
返回結果:{'sd'}
union
功能:並集,建立新的物件
name = {'sd', 'd', 's'}
li = {'s', 'd','h'}
name.union(li)
返回結果:{'h', 's', 'd', 'sd'}
update
功能:更新已有集合
name = {'sd', 'd', 's'}
name.update('df')
name
返回結果:{'sd', 'd', 'f', 's'}
a = t | s # t 和 s的並集
b = t & s # t 和 s的交集
c = t – s # 求差集(項在t中,但不在s中)
d = t ^ s # 對稱差集(項在t或s中,但不會同時出現在二者中)