Python strの本質は、helpコマンドで確認できます。
>>> help(str)
見られます
Help on classstrin module __builtin__:classstr(basestring)|str(object='')-> string
|| Return a nice string representation of the object.| If the argument is a string, the return value is the same object.|| Method resolution order:| str
| basestring
| object
|| Methods defined here:......
strの本質は、多くのメソッドを定義するPythonモジュール __builtin__
のクラスです。
Python文字列は変更できず、文字列の値は固定されています。したがって、文字列の特定のテーブル位置に値を割り当てることは間違っています:
>>> word='Python'>>> word[0]='J'...
TypeError:'str' object does not support item assignment
>>> word[2:]='py'...
TypeError:'str' object does not support item assignment
別の文字列を取得する場合は、新しい文字列を作成する必要があります。
>>>' J'+ word[1:]'Jython'>>> word[:2]+'py''Pypy'
モジュール __builtin__
の組み込み関数len()を使用して、文字列の長さを取得できます。
>>> help(len)
Help on built-infunction len in module __builtin__:len(...)len(object)-> integer
Return the number of items of a sequence or collection.>>> s ='supercalifragilisticexpialidocious'>>>len(s)34
文字列は反復可能なオブジェクトです
>>> s ='I love Python'>>>list(s)['I',' ','l','o','v','e',' ','P','y','t','h','o','n']>>>for c in s:...print(c)...
I
l
o
v
e
P
y
t
h
o
n
>>>
以下の関数は、関数分類に従ったstrクラスのメンバー関数の結果です。
xmindファイルは[こちら](https://flowsnow.oss-cn-shanghai.aliyuncs.com/history/file/xmind/%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%93%8D%E4%BD%9C.xmind)からダウンロードできます。
S.join(iterable) -> string
機能機能
指定された文字Sで反復可能なシーケンス内の要素を接続して、新しい文字列を生成します。
機能例
>>> iter="apple">>> s="-">>> s.join(iter)'a-p-p-l-e'
S.find(sub [,start [,end]]) -> int
機能機能
C ++文字列の検索機能と同じ機能です。 substring subが文字列に存在するかどうかを確認します。存在する場合は、最初に見つかった部分文字列の添え字を返します。存在しない場合は-1を返し、C ++はstring :: nopsを返します。 。
機能例
>>> s="this is my dog, i love this dog and it's a good dog!">>> s.find("dog")11>>> s.find("dog",12,len(s)-1)28>>> s.find("dog",12,20)-1
S.rfind(sub [,start [,end]]) -> int
機能機能
C ++文字列の検索機能と同じ機能です。文字列にsubstringsubがあるかどうかを確認します。存在する場合は、最後に見つかったサブ文字列の添え字を返します。ない場合は-1を返し、C ++はstring :: nopsを返します。
機能例
>>> s="this is my dog, i love this dog and it's a good dog!">>> s.rfind("dog")48>>> s.rfind("dog",0,len(s)-10)28
S.index(sub [,start [,end]]) -> int
機能機能
サブストリングsubがSにない場合、例外(ValueError:サブストリングが見つかりません)が報告されることを除いて、python find()メソッドと同じ機能があります。
機能例
>>> s="this is my dog, i love this dog and it's a good dog!">>> s.index("dog")11>>> s.index("digw")Traceback(most recent call last):
File "<stdin>", line 1,in<module>
ValueError: substring not found
S.rindex(sub [,start [,end]]) -> int
機能機能
サブストリングsubがSにない場合、例外(ValueError:サブストリングが見つかりません)が報告されることを除いて、python rfind()メソッドと同じ機能があります。
機能例
>>> s="this is my dog, i love this dog and it's a good dog!">>> s.rindex("dog")48>>> s.rfind("dog")48>>> s.rindex("oihofa")Traceback(most recent call last):
File "<stdin>", line 1,in<module>
ValueError: substring not found
S.count(sub[, start[, end]]) -> int
機能機能
文字列内の特定のサブ文字列の出現回数を見つけます。 startとendは、開始と終了の添え字の位置を示す2つのオプションのパラメーターです。 Pythonのデフォルトの添え字の位置は0から始まります。
機能例
>>> s="this is my dog, i love this dog and it's a good dog!">>> print s
this is my dog, i love this dog and it's a good dog!>>> s.count("dog")3>>> s.count(" ")12>>> s.count("dog",15)2>>> s.count("dog",15,32)1
S.capitalize() -> string
機能機能
最初の文字は文字で、最初の文字を大文字で返し、他の文字は変更されません。
機能例
>>> s='linux'>>> s.capitalize()'Linux'>>> s='790873linux'>>> s.capitalize()'790873linux'
S.center(width[, fillchar]) -> string
機能機能
文字列Sが中心で、幅の長さの文字列が返され、余分な部分は塗りつぶし文字で埋められます。 widthがlen(S)以下の場合、str自体が返されます。パラメータfillcharが指定されていない場合、デフォルトでスペースが埋められます
機能例
>>> s='linux'>>> a=s.center(len(s)+1,'m')>>> print a
linuxm
>>> a=s.center(len(s)+2,'m')>>> print a
mlinuxm
>>> a=s.center(len(s)+3,'m')>>> print a
mlinuxmm
>>> a=s.center(len(s)+4,'m')>>> print a
mmlinuxmm
>>> a=s.center(len(s)-1,'m')>>> print a
linux
S.ljust(width[, fillchar]) -> string
機能機能
元の文字列を左揃えにして、指定された長さにfillchar文字で埋めた新しい文字列を返します。
width-文字列の長さを指定します
fillchar-塗りつぶし文字、デフォルトはスペース
機能例
>>> a="apple">>> a.ljust(10)'apple '>>> a.ljust(10,'.')'apple.....'>>> a.ljust(3,'2')'apple'
S.rjust(width[, fillchar]) -> string
機能機能
元の文字列が右揃えで、指定された長さにfillchar文字で塗りつぶされた新しい文字列を返します。
width-文字列の長さを指定します
fillchar-塗りつぶし文字、デフォルトはスペース
機能例
>>> a="apple">>> a.rjust(10)' apple'>>> a.rjust(10,'.')'.....apple'>>> a.rjust(3,'.')'apple'
S.expandtabs([tabsize]) -> string
機能機能
文字列内のタブ記号( '\ t')をスペースに変換します。タブ記号( '\ t')のデフォルトのスペース数は8です。tabsize-変換された文字列内のタブ記号( '\ t')を次のように指定します。スペース内の文字数。
機能例
>>> s ="today is a good d\tay">>> print s
today is a good d ay
>>> s.expandtabs()'today is a good d ay'>>> s.expandtabs(4)'today is a good d ay'>>> s.expandtabs(1)'today is a good d ay'>>> s.expandtabs(0)'today is a good day'
S.format(*args, **kwargs) -> string
機能機能
文字列変数をフォーマットします。 {}形式は、バージョン2.7およびバージョン3.1以降でのみサポートされます。古いバージョンはエラーを報告します
ValueError: zero length field name in format
参照:[ValueError:python形式の長さゼロのフィールド名](http://stackoverflow.com/questions/10054122/valueerror-zero-length-field-name-in-format-python)
機能例
>>> name ='StivenWang'>>> fruit ='apple'>>> print 'my name is {},I like {}'.format(name,fruit)
my name is StivenWang,I like apple
>>> print 'my name is {1},I like {0}'.format(fruit,name)
my name is StivenWang,I like apple
>>> print 'my name is {mingzi},I like{shuiguo}'.format(shuiguo=fruit,mingzi=name)
my name is StivenWang,I like apple
S.lower() -> string
文字列内のすべての大文字を小文字に変換します
>>> a="oiawh92dafawFAWF';;,">>> a.lower()"oiawh92dafawfawf';;,"
S.upper() -> string
文字列内のすべての小文字を大文字に変換します
>>> a="oiawh92dafawFAWF';;,">>> a.upper()"OIAWH92DAFAWFAWF';;,"
S.swapcase() -> string
機能機能
文字列の大文字と小文字を変換します。小文字から大文字、大文字から小文字
機能例
>>> s="ugdwAWDgu2323">>> s.swapcase()'UGDWawdGU2323'
S.split([sep [,maxsplit]]) -> list of strings
機能機能
セパレーターsepを指定することにより、文字列がスライスされます。パラメーターmaxsplitに指定された値がある場合、maxsplitサブ文字列のみが分離されます。セパレータsepが指定されていない場合、デフォルトではスペースで区切られます。
機能例
>>> s="sys❌3:3:Ownerofsystemfiles:/usr/sys:">>> s.split(":")['sys','x','3','3','Ownerofsystemfiles','/usr/sys','']>>> s.strip(":").split(":")['sys','x','3','3','Ownerofsystemfiles','/usr/sys']>>>len(s.strip(":").split(":"))6>>> s="sa aa aa as">>> s.split()['sa','aa','aa','as']
S.splitlines(keepends=False) -> list of strings
機能機能
行ごとに分けて、各行を要素として含むリストを返します。パラメータkeepends = Falseで、後者が空または0の場合、 " \ n "
は含まれません。それ以外の場合は、 " \ n "
が含まれます。
機能例
>>> s="Line1-a b c d e f\nLine2- a b c\n\nLine4- a b c d">>> print s.splitlines()['Line1-a b c d e f','Line2- a b c','','Line4- a b c d']>>> print s.splitlines(0)['Line1-a b c d e f','Line2- a b c','','Line4- a b c d']>>> print s.splitlines(1)['Line1-a b c d e f\n','Line2- a b c\n','\n','Line4- a b c d']>>> print s.splitlines(2)['Line1-a b c d e f\n','Line2- a b c\n','\n','Line4- a b c d']>>> print s.splitlines(3)['Line1-a b c d e f\n','Line2- a b c\n','\n','Line4- a b c d']>>> print s.splitlines(4)['Line1-a b c d e f\n','Line2- a b c\n','\n','Line4- a b c d']
S.partition(sep) -> (head, sep, tail)
機能機能
指定されたセパレーターsepに従って文字列を分割します(3要素のタプルを返します。最初はセパレーターの左側のサブストリング、2番目はセパレーター自体、3番目はセパレーターの右側のサブストリングです) 。また、区切り文字を空または空の文字列にすることはできません。そうしないと、エラーが報告されます。
機能例
>>> s="are you know:lilin is lowser">>> s.partition("lilin")('are you know:','lilin',' is lowser')>>> s.partition("")Traceback(most recent call last):
File "<stdin>", line 1,in<module>
ValueError: empty separator
>>> s.partition()Traceback(most recent call last):
File "<stdin>", line 1,in<module>
TypeError:partition() takes exactly one argument(0 given)
S.strip([chars]) -> string or unicode
機能機能
文字列の最初と最後にある指定された文字を削除するために使用されます(デフォルトはスペースです)。文字がユニコードの場合は、最初に文字列をユニコードに変換してから、ストリップ操作を実行します。
機能例
>>> s="egg is a apple">>> print s.strip("e")
gg is a appl
>>> s="\negg is a apple\n">>> print s
egg is a apple
>>> print s.strip("\n")
egg is a apple
S.lstrip([chars]) ->string or unicode
機能機能
文字列の左側のスペースまたは指定された文字を切り取るために使用されます。
機能例
>>> s="egg is a apple">>> print s.lstrip("e")
gg is a apple
>>> s="\negg is a apple\n">>> print s.lstrip("\n")
egg is a apple
>>>
S.rstrip([chars]) -> string or unicode
機能機能
文字列の右側のスペースまたは指定された文字を切り取るために使用されます。
機能例
>>> s="egg is a apple">>> print s.rstrip("e")
egg is a appl
>>> s="\negg is a apple\n">>> print s.rstrip("\n")
egg is a apple
>>>
S.replace(old, new[, count]) -> unicode
機能機能
文字列内の古い(古い文字列)を新しい(新しい文字列)に置き換えます.3番目のパラメータmaxが指定されている場合、置き換えはカウント回数を超えません。
機能例
>>> s="saaas">>> s.replace("aaa","aa")'saas'>>> s="saaaas">>> s.replace("aaa","aa")'saaas'>>> s="saaaaas">>> s.replace("aaa","aa")'saaaas'>>> s="saaaaaas">>> s.replace("aaa","aa")'saaaas'
上記の置換は、再帰的に置換するものではありません.3 aを見つけて、2つのaに置換するたびに、最初から開始するのではなく、3aの後ろの位置からトラバースし続けます。
エンコード関連の関数は全部で2つありますstr.decode([encoding [、errors]])hestr.encode([encoding [、errors]])
まず、コーディングに関連するいくつかの概念を理解します
>>> s ='劉Yifei'>>>type(s)<class'str'>>>>help(s.encode)
Help on built-infunction encode:encode(...) method of builtins.str instance
S.encode(encoding='utf-8', errors='strict')-> bytes
Encode S using the codec registered for encoding. Default encoding
is 'utf-8'. errors may be given to set a different error
handling scheme. Default is 'strict' meaning that encoding errors raise
a UnicodeEncodeError. Other possible values are 'ignore','replace' and
' xmlcharrefreplace'as well as any other name registered with
codecs.register_error that can handle UnicodeEncodeErrors.
# デフォルトのエンコーディングはutfです-8.以下は、デフォルトのエンコーディングに準拠しています
>>> s.encode()
b'\xe5\x88\x98\xe4\xba\xa6\xe8\x8f\xb2'>>>'劉'.encode()
b'\xe5\x88\x98'>>>'また'.encode()
b'\xe4\xba\xa6'>>>'フェイ'.encode()
b'\xe8\x8f\xb2'>>>bin(0xe5)'0b11100101'>>>bin(0x88)'0b10001000'>>>bin(0x98)'0b10011000'>>> b = s.encode()>>> b
b'\xe5\x88\x98\xe4\xba\xa6\xe8\x8f\xb2'>>> b.decode()'劉Yifei'
# 以下はGBKとして指定されたコードです
>>> b = s.encode('GBK')>>> b
b'\xc1\xf5\xd2\xe0\xb7\xc6'>>> b.decode('GBK')'劉Yifei'>>> b.decode()Traceback(most recent call last):
File "<stdin>", line 1,in<module>
UnicodeDecodeError:'utf-8' codec can't decode byte 0xc1in position 0: invalid start byte
バイトタイプは、上記のエンコードおよびデコード方法の使用に表示されます。以下は、このタイプの簡単な紹介です
>>> b = b'\xe5\x88\x98'>>>type(b)<class'bytes'>>>> b
b'\xe5\x88\x98'>>> b.decode()'劉'
エンコードに加えて、str操作には対応するバージョンのバイトがありますが、着信パラメーターもバイトである必要があります
**バイトの可変バージョンbytearray **
Bytearrayは可変であり、バイトの変更は画像処理でよく使用されます。バイトに関連して、bytearrayには、挿入、追加、拡張、ポップ、削除、リバースのクリアなどの操作が多く、インデックスを付けることができます。
機能機能
文字列が指定されたプレフィックスで始まるかどうかを判断するために使用されます。指定されたサフィックスで終わる場合はTrueを返し、そうでない場合はFalseを返します。オプションのパラメータ「start」と「end」は、検索文字列の開始位置と終了位置です。プレフィックスはタプルにすることができます。
機能例
>>> s ="I am Mary,what's your name ?">>> s.startswith("I am")
True
>>> s.startswith("I are")
False
>>> s.startswith("I am",1,5)
False
S.endswith(suffix[, start[, end]]) -> bool
機能機能
文字列が指定されたサフィックスで終わるかどうかを判断するために使用されます。指定されたサフィックスで終わる場合はTrueを返し、そうでない場合はFalseを返します。オプションのパラメータ「start」と「end」は、検索文字列の開始位置と終了位置です。サフィックスはタプルにすることができます。
機能例
>>> s ="I am Mary,what's your name ?">>> print s
I am Mary,what's your name ?>>> s.endswith("name ?")
True
>>> s.endswith("mame ?")
False
>>> s.endswith("name ?",0,len(s)-2)
False
S.isalnum() -> bool
機能機能
文字列が文字または数字で構成されているかどうかを確認します。そうである場合はTrueを返し、他の文字がある場合はFalseを返します。
文字列は空ではありません。空の場合はFalseを返します。
機能例
>>> a="123">>> a.isalnum()
True
>>> a="daowihd">>> a.isalnum()
True
>>> a="ofaweo2131giu">>> a.isalnum()
True
>>> a="douha ioh~w80">>> a.isalnum()
False
>>> a="">>> a.isalnum()
False
S.isalpha() -> bool
機能機能
文字列が文字のみで構成されているかどうかを確認してください。文字列は空ではありません。空の場合はFalseを返します。
機能例
>>> a="123">>> a.isalpha()
False
>>> a="uuagwifo">>> a.isalpha()
True
>>> a="oiwhdaw899hdw">>> a.isalpha()
False
>>> a="">>> a.isalpha()
False
S.isdigit() -> bool
機能機能
文字列が数字のみで構成されているかどうかを確認します。文字列は空ではありません。空の場合はFalseを返します。
機能例
>>> a="123">>> a.isdigit()
True
>>> a="dowaoh90709">>> a.isdigit()
False
>>> a="">>> a.isdigit()
False
S.islower() -> bool
機能機能
文字列が小文字で構成されているかどうかを確認してください。
機能例
>>> a="uigfa">>> a.islower()
True
>>> a="uiuiga123141a">>> a.islower()
True
>>> a="uiuiga12314WATA">>> a.islower()
False
>>> a="">>> a.islower()
False
>>> a="doiowhoid;'">>> a.islower()
True
S.isupper() -> bool
機能機能
文字列が大文字で構成されているかどうかを確認してください。
機能例
>>> a="SGS">>> a.isupper()
True
>>> a="SGSugdw">>> a.isupper()
False
>>> a="SGS123908;',">>> a.isupper()
True
S.isspace() -> bool
機能機能
文字列がスペースのみで構成されているかどうかを確認します
機能例
>>> a=" ">>> a.isspace()
True
>>> a=" 12 dw ">>> a.isspace()
False
1、 Python 2.7.12 documentation
2、[ Shaw Blog--Python strメソッドの概要](https://www.cnblogs.com/opsedu/p/5501157.html)
3、[ hc-Python文字列操作](https://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html)
Recommended Posts