ホームページ >バックエンド開発 >Python チュートリアル >Pythonの文字列スライスの一般的な方法は何ですか?
#スライス: は、操作オブジェクトの一部をインターセプトする操作を指します。文字列、リスト、タプルはすべてスライス操作をサポートします
構文: シーケンス [開始位置の添字: 終了位置の添字: ステップ サイズ]、終了位置の添字データは含まれません。ステップ サイズは、正または負の選択間隔です。デフォルトは 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 ceg2. 一般的に使用される方法 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 found2.2 変更
文字列の変更:データを変更します。関数 form
# を返します。
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 判定
構文: string sequence.startswith(substring, 開始位置の添字, 終了位置の添字)
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 サイトの他の関連記事を参照してください。