• <table id="4yyaw"><kbd id="4yyaw"></kbd></table>
  • <td id="4yyaw"></td>
  • 發布時間:2020-09-28 23:26 原文鏈接: python的數據類型:字符串(一)

    之前講到,字符串的定義就是把一些字符序列用引號引起來。例如:

    s = 'abc'

    上面這行代碼的執行過程:先創建一個字符串對象,并初始化里面字符串的值為'a', 'b', 'c'的序列,再把指針s指向這個對象。如下圖所示:

    字符串的序列操作

    我們知道字符串內部是一個字符序列。作為序列,我們可以用下標來索引。例如:

    c = s[0]    # c = 'a'

    c = s[1]    # c = 'b'

    還可以從字符序列的末尾開始索引,-1代表最后一個字符,-2代表倒數第二個字符,... 例如:

    c = s[-1]    # c = 'c'

    c = s[-2]    # c = 'b'

    另外字符串還支持切片(slice)操作,取出給定兩個下標之間的字符序列(包括開始下標的字符,但不包括結束下標的字符。用數學區間的[a:b)來描述是不是更清楚點呢)。例如:

    c = s[0:2]    # c = 'ab'

    c = s[1:2]    # c = 'b'

    c = s[1:-1]    # c = 'b'

    這一點很像verilog的位寬操作,例如:reg s[7:0] = 8'h5a,那我們可以c = s[3:0]來取出3到0位的4'ha。只是verilog是閉區間的。

    在切片時,當開始下標是0,冒號前的下標可以省略;結束下標指向最后一個元素,冒號后的下標也可省略。所以上面的切片可以簡化成:

    c = s[:2]    # c = 'ab'

    c = s[1:]    # c = 'bc'

    當開始下標和結束下標都省略時,s[:]表示整個字符序列'abc'。

    注意理解 s[1:-1]和s[1:]的區別,前者不包括最后一個字符,而后者包括。

    作為字符序列,還支持拼接和重復操作。例如:

    s1 = 'abc'

    s2 = s1 + 'def'  # s2 = 'abcdef'

    s3 = s1 * 3    # s3 = 'abcabcabc'

    另外我們要注意字符序列的只讀性。我們不可以對字符賦值,s[0] = 'd'是非法的。但我們可以迂回:

    s = 'abc'        

    s = 'd' + s[1:]

    但要注意,第二句并不是簡單的修改s對象的元素值,而是用拼接產生了一個全新對象,并讓s指向新的對象。

    字符串類型的操作

    除了序列操作外,字符串本身作為一種類,自帶了很多操作函數(類的方法)。下表列出了一些常用的操作:

    index, find

    position = index(substr, begin=0, end=len(string))

    position = find(substr, begin=0, end=len(string))

    描述:index和find函數的作用相同,都是查找子字符串。可以指定開始和結束索引,在一個范圍內查找。

    返回值:子字符串的起始索引值。index和find的區別是,當沒有找到子字符串時,index報錯,而find返回-1。

    例如:

    s = 'abcdefdef'

    p1 = s.find('de')   # p1 = 3

    p2 = s.index('de', 5)  # p2 = 6

    replace

    str_new = replace(substr_old, substr_new[, max])

    描述:替換函數,如其名,查找子字符串substr_old,替換成substr_new。第三個參數是可選的,指定替換的最大次數,默認是全部替換。

    返回值:返回替換后的新字符串。

    例如:

    s = 'abcdefdef'

    s1 = s.place('de', 'gh')   # s1 = 'abchgfhgf'

    s2 = s.place('de', 'gh',1)   # s1 = 'abchgfedf'

    split

    list = split(str=' ',  num)


  • <table id="4yyaw"><kbd id="4yyaw"></kbd></table>
  • <td id="4yyaw"></td>
  • 调性视频