Python文字列

Python文字列str#

ストレス##

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__のクラスです。

str機能##

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 method

以下の関数は、関数分類に従った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)からダウンロードできます。

接続###

str.join(iterable)

S.join(iterable) -> string

機能機能

指定された文字Sで反復可能なシーケンス内の要素を接続して、新しい文字列を生成します。

機能例

>>> iter="apple">>> s="-">>> s.join(iter)'a-p-p-l-e'

###を探す

str.find(sub[, start[, end]])

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

str.rfind(sub[, start[, end]])

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

str.index(sub[, start[, end]])

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

str.rindex(sub[, start[, end]])

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

str.count(sub[, start[, end]])

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

組版###

str.capitalize()

S.capitalize() -> string

機能機能

最初の文字は文字で、最初の文字を大文字で返し、他の文字は変更されません。

機能例

>>> s='linux'>>> s.capitalize()'Linux'>>> s='790873linux'>>> s.capitalize()'790873linux'

str.center(width[, fillchar])

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

str.ljust(width[, fillchar])

S.ljust(width[, fillchar]) -> string

機能機能

元の文字列を左揃えにして、指定された長さにfillchar文字で埋めた新しい文字列を返します。

width-文字列の長さを指定します

fillchar-塗りつぶし文字、デフォルトはスペース

機能例

>>> a="apple">>> a.ljust(10)'apple     '>>> a.ljust(10,'.')'apple.....'>>> a.ljust(3,'2')'apple'

str.rjust(width[, fillchar])

S.rjust(width[, fillchar]) -> string

機能機能

元の文字列が右揃えで、指定された長さにfillchar文字で塗りつぶされた新しい文字列を返します。

width-文字列の長さを指定します

fillchar-塗りつぶし文字、デフォルトはスペース

機能例

>>> a="apple">>> a.rjust(10)'     apple'>>> a.rjust(10,'.')'.....apple'>>> a.rjust(3,'.')'apple'

str.expandtabs([tabsize])

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'

str.format(*args, **kwargs)

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

場合###

str.lower()

S.lower() -> string

文字列内のすべての大文字を小文字に変換します

>>> a="oiawh92dafawFAWF';;,">>> a.lower()"oiawh92dafawfawf';;,"

str.upper()

S.upper() -> string

文字列内のすべての小文字を大文字に変換します

>>> a="oiawh92dafawFAWF';;,">>> a.upper()"OIAWH92DAFAWFAWF';;,"

str.swapcase()

S.swapcase() -> string

機能機能

文字列の大文字と小文字を変換します。小文字から大文字、大文字から小文字

機能例

>>> s="ugdwAWDgu2323">>> s.swapcase()'UGDWawdGU2323'

セグメンテーション###

str.split([sep[, maxsplit]])

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']

str.splitlines([keepends])

S.splitlines(keepends=False) -> list of strings

機能機能

行ごとに分けて、各行を要素として含むリストを返します。パラメータkeepends = Falseで、後者が空または0の場合、 &quot; \ n &quot;は含まれません。それ以外の場合は、 &quot; \ n &quot;が含まれます。

機能例

>>> 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']

str.partition(sep)

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)

変更###

str.strip([chars])

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

str.lstrip([chars])

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

>>>

str.rstrip([chars])

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
>>>

str.replace(old, new[, count])

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には、挿入、追加、拡張、ポップ、削除、リバースのクリアなどの操作が多く、インデックスを付けることができます。

判定###

str.startswith(prefix[, start[, end]])

機能機能

文字列が指定されたプレフィックスで始まるかどうかを判断するために使用されます。指定されたサフィックスで終わる場合は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

str.endswith(suffix[, start[, end]])

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

str.isalnum()

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

str.isalpha()

S.isalpha() -> bool

機能機能

文字列が文字のみで構成されているかどうかを確認してください。文字列は空ではありません。空の場合はFalseを返します。

機能例

>>> a="123">>> a.isalpha()
False
>>> a="uuagwifo">>> a.isalpha()
True
>>> a="oiwhdaw899hdw">>> a.isalpha()
False
>>> a="">>> a.isalpha()
False

str.isdigit()

S.isdigit() -> bool

機能機能

文字列が数字のみで構成されているかどうかを確認します。文字列は空ではありません。空の場合はFalseを返します。

機能例

>>> a="123">>> a.isdigit()
True
>>> a="dowaoh90709">>> a.isdigit()
False
>>> a="">>> a.isdigit()
False

str.islower()

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

str.isupper()

S.isupper() -> bool

機能機能

文字列が大文字で構成されているかどうかを確認してください。

機能例

>>> a="SGS">>> a.isupper()
True
>>> a="SGSugdw">>> a.isupper()
False
>>> a="SGS123908;',">>> a.isupper()
True

str.isspace()

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

Python文字列
Python文字列
Python文字列操作
PythonのStr文字列
Pythonが文字列の大文字小文字を変換する方法
Pythonインタビューの質問:文字列の連結
Python文字列3形式の出力
Pythonマルチスレッド
Python CookBook
Python FAQ
Python3辞書
Python3モジュール
python(you-get)
Pythonの基本
Python記述子
Python exec
Pythonノート
CentOS + Python3.6 +
Python Advanced(1)
Pythonデコレータ
Python IO
Pythonマルチスレッド
Python3リスト
Pythonマルチタスク-日常
pythonの紹介
07.Python3関数
Pythonの基本3
Pythonマルチタスクスレッド
python sys.stdout
Pythonエントリ-3
Python文字列プーリングの前提
Centos 7.5 python3.6
pythonキューキュー
Pythonの基本4
Pythonの基本5
Pythonの古典的なプログラミングの質問:文字列の置換
パスワードの強度を判断するためのPython文字列
Centos6はPython2.7.13をインストールします
Pythonは質問に答えます
Pythonの基本構文(1)
Centos7はPython3.6をインストールします。
ubuntu18.04インストールpython2
Pythonの古典的なアルゴリズム
ubuntuを再学習します--python3
Python2.7 [インストールチュートリアル]
Python 3.9が登場!
Python研究ノート(1)
python学習ルート
CentOS7アップグレードpython3
Python3の基本構文
linux + ubuntuはpythonを解決します
pythonの関数
Python学習変数タイプ
CentOSはPython3.6をインストールします
Python3.9の7つの機能
Pythonファイル操作
ubuntu12.04インストールpython3
Pythonのデザインパターン
Python-centos6のインストール
Centos7はPython2.7をインストールします
01.Pythonの概要