(python)データ構造---文字列

15448 ワード

一、概説
  • は、1つの文字からなる秩序化されたシーケンスである.
  • は、一重引用符、二重引用符、三重引用符で囲まれた文字列を使用します.
  • 可変で線形なデータ構造.

  • 二、文字列の関連操作
    1、要素アクセス----下付き
  • 文字列は線形のデータ構造であり、インデックスを使用して要素にアクセスできます.
  • インデックスは境界を超えてはいけません.そうしないと、異常IndexErrorが放出されます.
  • 文字列は反復可能なオブジェクトです.
  • 1 string = "hello"
    2 print(string[1])


    e
    1 string = "hello"
    2 for s in string:
    3     print(s)


    hello
    2、“string”.join(iterable)
  • stringを区切り記号として使用して、反復可能なオブジェクトを接続します.
  • 反復可能なオブジェクト自体の要素は、文字列タイプである必要があります.
  • は、元の文字列が変わらない新しい文字列を返します.
  • 1 lst = ['1', '3', 'a']
    2 string = "-".join(lst)
    3 print(string)


    1-3-a

    3、+
  • は、2つの文字列を接続します.
  • は、新しい文字列を返します.
  • 1 string1 = 'hello'
    2 string2 = 'python'
    3 string3 = string1 + string2
    4 print(string3)


    hellopython

    4、string.split(sep=None, maxsplit=-1)
  • sep:区切り記号を指定し、デフォルトでは空白文字を分割記号とします.
  • maxsplit:最大分割数を指定し、デフォルトで文字列全体を巡回します.
  • は、新しい文字列のリストを返します.
  • は左から右に分割されます.
  • には逆の方法rsplitもあり、使い方は一致していますが、この方法は右から左に分割します.
  • 1 string = "I'am a super student"
    2 newstr = string.split('s', 1)
    3 print(newstr)


    ["I'am a ", 'uper student']
    1 string = "I'am a super student"
    2 newstr = string.rsplit('s', 1)
    3 print(newstr)


    ["I'am a super ", 'tudent']

    5、string.splitlines([keepends=False])
  • keepends:行区切り記号を保持するかどうか(行区切り記号:rrなど).
  • 行ごとに分割されます.
  • は、新しい文字列のリストを返します.
  • 1 string = "ab c

    de fg\rkl\r
    z
    " 2 newstr = string.splitlines() 3 print(newstr)


    ['ab c', '', 'de fg', 'kl', 'z']
    1 string = "ab c

    de fg\rkl\r
    z
    " 2 newstr = string.splitlines(True) 3 print(newstr)


    ['ab c
    ', '
    ', 'de fg\r', 'kl\r
    ', 'z']

    6、string.partition(sep)
  • は、指定された区切り文字sepに遭遇すると、文字列を3つの部分(ヘッダ、区切り文字、テール)に分割し、区切り文字が見つからない場合は、ヘッダ、2つの空の要素の3つの部分を返します.
  • は、新しいメタグループを返します.
  • 左から右へ分割を開始します.
  • には、右から左に分割されるrpartitionと一致する逆の方法があります.
  • 1 string = "I'm a super student"
    2 newtuple = string.partition('s')
    3 print(newtuple)


    ("I'm a ", 's', 'uper student')

    7、string.upper()
  • 文字列のアルファベットをすべて大文字にします.
  • は、新しい文字列を返します.
  • とは反対にもう一つの方法string.lower()は、文字列のアルファベットをすべて小文字にします.
  • 1 string = "I'm a super student"
    2 newstr = string.upper()
    3 print(newstr)


    I'M A SUPER STUDENT

    8、string.swapcase()
  • 文字列のアルファベットを大文字と小文字で交換
  • は、新しい文字列を返します.
  • 1 string = "A b"
    2 newstr = string.swapcase()
    3 print(newstr)


    a B

    9、string.title()
  • 文字列の各単語を頭文字で大文字にします.
  • は、新しい文字列を返します.
  • 1 string = "hello python"
    2 newstr = string.title()
    3 print(newstr)


    Hello Python

    10、string.capitalize()
  • 最初の単語のアルファベットを大文字にします.
  • は、新しい文字列を返します.
  • 1 string = "hello python"
    2 newstr = string.capitalize()
    3 print(newstr)


    Hello python

    11、string.center(width[, fillchar])
  • width:指定した幅で文字列を中央に配置します.
  • fillchar:入力する文字.
  • は、新しい文字列を返します.
  • 1 string = "abc"
    2 newstr = string.center(10, "*")
    3 print(newstr)


    ***abc****

    12、string.zfill(width)
  • は右揃えで、左は0で埋めます.
  • は、新しい文字列を返します.
  • 1 string = "abc"
    2 newstr = string.zfill(10)
    3 print(newstr)


    0000000abc

    13、string.ljust(width[, fillchar])
  • は左揃えで、残りの空白の位置は指定した文字に基づいて埋められます.
  • は、新しい文字列を返します.
  • もう一つの方法string.rjust(width[,fillchar])は、右に表示され、残りの位置は指定された文字で塗りつぶされます.
  • 1 string = "abc"
    2 newstr = string.ljust(10, "*")
    3 print(newstr)


    abc*******
    1 string = "abc"
    2 newstr = string.rjust(10, "*")
    3 print(newstr)


    *******abc

    14、string.replace(old, new[, count])
  • old:置換する文字.
  • new:置換する新しい文字.
  • count:置換の回数は、指定しないですべて置換します.
  • 文字列から一致する文字oldが見つかり、新しい文字newに置き換えられ、新しい文字列が返されます.
  • 1 string = "aabbcc"
    2 newstr = string.replace('b', '*' )
    3 print(newstr)


    aa**cc

    15、string.strip([chars])
  • 文字列の両端から指定した文字セットcharsのすべての文字を除去します.
  • charsが指定されていない場合、両端の空白文字が除去されます.
  • には、指定された文字セットを左から削除する2つの方法lstripがあります.rstripは、指定した文字セットを右から削除する文字です.
  • 1 string = "\r 
    \t Hello Python
    \t
    " 2 newstr = string.strip() 3 print(newstr)


    Hello Python
    1 string = "I am very very very sorry"
    2 newstr = string.strip('Iay')
    3 print(newstr)


     am very very very sorr

    16、string.find(sub[, start[, end]])
  • 指定区間[start,end]でサブストリングsubを検索し、見つかったら対応するインデックスを返し、見つからなかったら-1を返す.
  • とは逆の方法はrfindであり、それに対してずっと使用されるが、rfindは右から左へ検索される.
  • もう一つ似たような方法はstringです.index(sub[,start[,end]])では、見つからないと異常ValueErrorを投げ出すところが違います.
  • 1 string = "I am very very very sorry"
    2 newstr = string.find('very')
    3 print(newstr)


    5

    17、string.count(sub[, start[, end]])
  • 指定区間[start,end]において,サブストリングsubが出現した回数を統計する.
  • 1 string = "I am very very very sorry"
    2 newstr = string.count('very')
    3 print(newstr)


    3

    18、startswith(prefix[, start[, end]])
  • 指定区間[start,end]で、文字列がprefixで始まるかどうかを判断する
  • Trunを返す場合、逆にFalse
  • を返す.
  • とは反対にもう一つの方法string.endswith(suffix[,start[,end]))は、文字列がsuffixで終わるかどうかを判断するために使用されます.
  • 1 string = "I am very very very sorry"
    2 newstr = string.startswith('I')
    3 print(newstr)


    True

    19、文字列判断isシリーズ方法
  • string.isalnum()文字列にアルファベットと数字の組成があるかどうかを判断する
  • string.isalpha()文字列がアルファベット組成
  • であるか否かを判断する
  • string.isdecimal()は、文字列に10進数
  • しか含まれていないかどうかを判断する.
  • string.isdigit()文字列がすべての数字(0-9)であるか否かを判断する
  • string.isdentifler()は、文字列がアルファベットと下線で始まるかどうかを判断し、その他は数字、アルファベット、下線
  • である.
  • string.islower()文字列がすべて小文字であるか否かを判断する
  • string.isupper()文字列がすべて大文字であるか否かを判断する
  • string.isspace()は、文字列が空白文字
  • のみを含むか否かを判断する.
    転載先:https://www.cnblogs.com/Sweltering/p/9885332.html