ホームページ  >  記事  >  バックエンド開発  >  Pythonの文字列スライスの一般的な方法は何ですか?

Pythonの文字列スライスの一般的な方法は何ですか?

WBOY
WBOY転載
2023-04-18 18:40:037987ブラウズ

1. スライス

#スライス: は、操作オブジェクトの一部をインターセプトする操作を指します。文字列、リスト、タプルはすべてスライス操作をサポートします

構文: シーケンス [開始位置の添字: 終了位置の添字: ステップ サイズ]、終了位置の添字データは含まれません。ステップ サイズは、正または負の選択間隔です。デフォルトは 1

例は次のとおりです:

str = 'abcdefg_a'
print(str[1:6:2], str[2:6], str[:3], str[3:], str[:])
print(str[::2], str[:-2], str[-6:-2], str[::-2], str[::-1])
print(str[-2:], str[2:-2], str[-2::-2], str[:-2:2], str[2:-2:2])
 
输出:
bdf cdef abc defg_a abcdefg_a
acega abcdefg defg ageca a_gfedcba
_a cdefg _fdb aceg ceg

2. 一般的に使用される方法

2.1 検索

文字列を検索します: つまり、文字内の部分文字列を検索します。文字列内の位置または出現回数

  • find():特定の文字列が文字列に含まれるかどうかを検出します。特定の文字列を返し、存在する場合はその部分文字列を返します。 文字列の開始位置の添字。それ以外の場合は、 は -1

  • を返します。 構文: String sequence.find(substring, starting location subscript, End location subscript)

  • #index(): 文字列に部分文字列が含まれているかどうかを検出します。存在する場合は、開始位置マークの下の部分文字列を返します。それ以外の場合は例外を報告します

    • 構文: String sequence.index(部分文字列、開始位置の添字、終了位置の添字)

  • rfind(): は find() と同じ関数ですが、検索方向は次のようになります。

  • rindex(): は、index() と同じ機能を持ちますが、検索が異なります。方向は右から始まります。つまり、部分文字列の最後の出現位置が返されます。

  • count(): 特定の部分文字列が出現する回数を返します。文字列

例:

str = 'abcdefg_a'
print('-------------------查找-------------------')
print(str.find('c'), str.find('fg', 2, ), str.find('a', 2), str.find('h'))
print(str.index('c'), str.index('fg', 2, ), str.index('a', 2))
print(str.find('a'), str.rfind('a'), str.index('a'), str.rindex('a'), str.count('a'))
print(str.index('h'))
 
输出:
-------------------查找-------------------
2 5 8 -1
2 5 8
0 8 0 8 2
ValueError: substring not found

2.2 変更

文字列の変更:データを変更します。関数 form

  • replace() を介して文字列に入力: Replace

    • 構文: String sequence.replace(old substring, new substring 、置換の最大数)

  • split (): 指定された文字に従って文字列を分割します

    • 構文: String sequence.split (分割文字、分割数) # 返されるデータの数は分割数です 1

  • join(): 文字列を 1 つの文字または部分文字列と結合しますつまり、複数の文字列を新しい文字列にマージします。

    • 構文:character または substring.join (複数の文字列で構成されるシーケンス)

  • capitalize(): 文字列の最初の文字を大文字に変換し、最初の文字のみを大文字にし、残りを小文字にします。

    • # 構文: 文字列sequence.capitalize()

  • title( ): 文字列内の各単語の最初の文字を大文字に変換します

  • lower( ): 文字列の大文字を小文字に変換します。

  • upper( ): 文字列を小文字から大文字に変換します。

  • swapcase( ): 文字列を大文字から小文字に変換します。

  • partition('separator') : 指定された区切り文字に従って文字列を分割し、左の部分文字列、区切り文字、および区切り文字で構成されるトリプレットを返します。右部分文字列

  • min(str): 文字列 str を返します。 最小文字数

  • max(str): 最大文字数

    # を返します。

  • ##zfill(width): 指定した width String の長さの文字を右揃えで出力し、指定した長さを超える場合は先頭に 0 を追加します。 ##lstrip(): 文字列の左側の空白文字を削除
  • rstrip(): 文字列の右側の空白文字を削除
  • strip(): 文字列の両側のスペース文字を削除します。
  • ljust() : 文字列が左揃えされ、対応する長さまで指定された文字で埋められます (デフォルトのスペース)
  • # 構文: 文字列 sequence.ljust(長さ, パディング文字)
    • rjust():文字列は右揃えで指定された文字 (デフォルトのスペース) で対応する長さまで埋められます
    • # 構文: 文字列シーケンス .rjust (長さ、パディング文字)
  • ##center(): 中央揃えで指定された文字 (デフォルトのスペース) を対応する長さまで埋め込みます
    • 構文: String sequence.center (長さ、埋め込み文字)
  • 例:
    • print('--------------修改--------------')
      str1 = 'hello python and hello IT and hello world and hello YX !'
      print(str1.replace('and','&&'))
      print(str1.split('and'), str1.split('and', 2))
      l = ['Hello', 'world', '!']
      t = ('Hello', 'python', '!')
      print('_'.join(l), ' '.join(t))  # 用下划线_和空格连接
      print(str1.capitalize())  # 首字符转为大写,其余均小写
      print(str1.title())  # 每个单词首字母转为大写
      str2 = '   Hello World !   '
      print(str2.lower(), str2.upper(), str2.swapcase())  # 大写转小写,小写转大写,翻转大小写
      print(str2.partition('rl'), str2.partition('o'))  # 根据指定分隔符将字符串分割,返回三元元组
      print(min(str2), max(str2), ord(min(str2)), ord(max(str2)))  # str2中最小为空格对应十进制32,最大为r对应114
      print(str2.zfill(21))  # 输出指定长度为21的字符串,右对齐,不足前面补0,超出指定长度则原样输出
      print(str2.lstrip(), str2.rstrip(), str2.strip())  # 清除字符串左、右、两边空格字符
      str3 = 'hello!'
      print(str3.ljust(13, '*'), str3.rjust(13, '*'), str3.center(14, '*'))
       
      输出:
      --------------修改--------------
      hello python && hello IT && hello world && hello YX !
      ['hello python ', ' hello IT ', ' hello world ', ' hello YX !'] ['hello python ', ' hello IT ', ' hello world and hello YX !']
      Hello_world_! Hello python !
      Hello python and hello it and hello world and hello yx !
      Hello Python And Hello It And Hello World And Hello Yx !
         hello world !       HELLO WORLD !       hELLO wORLD !   
      ('   Hello Wo', 'rl', 'd !   ') ('   Hell', 'o', ' World !   ')
        r 32 114
      00   Hello World !  
      Hello World !       Hello World ! Hello World !
      hello!******* *******hello! ****hello!****

      2.3 判定

# #startswith(): 文字列が指定された部分文字列で始まるかどうかを確認し、True を返した場合は False を返し、指定された範囲内にある開始位置と終了位置の添字を設定します。

構文: string sequence.startswith(substring, 開始位置の添字, 終了位置の添字)

    endswith(): 文字列が指定された文字列で終わるかどうかを確認します。 substring、True を返し、それ以外の場合は False を返し、開始位置と終了位置の添字を設定し、指定された範囲内をチェックします。
    • 構文: String sequence.endswith (substring, 開始位置の添字) 、終了位置の添字)
    isalpha(): 文字列に少なくとも 1 つの文字がある場合、その文字とすべての文字が文字の場合は True を返し、それ以外の場合は False を返します
  • isdigital(): 文字列に数字のみが含まれている場合は True を返し、それ以外の場合は False を返します
    • isalnum():若字符串至少有一个字符且所有字符都是字母或数字则返回True,否则返回False

    • isspace():若字符串只包含空格,则返回True,否则返回False

    举例如下:

    print('---------------判断----------------')
    str3 = 'hello!'
    print(str3.startswith('he'), str3.startswith('she'), str3.startswith('he',2,))
    print(str3.endswith('!'), str3.endswith('。'), str3.endswith('!', 2, 5))
    print(str3.isalpha(),str3.isalnum(), str3.isdigit(), str3.isspace())
     
    输出:
    ---------------判断----------------
    True False False
    True False False
    False False False False

以上がPythonの文字列スライスの一般的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。