1. 程式人生 > >關於python學習中的知識點

關於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中,但不會同時出現在二者中)