この記事のポイント
文字列の連結
スプリットストリング区切り文字は、さまざまなが含まれています
Bの解釈は、開始または文字列に文字列の末尾場合
中国の文字列フォーマット調整存在に応じて
文字列の左、右、中央揃え
文字列内の不要な文字を削除します。
文字列の連結
実際のシーン:一緒に文字列にデータリスト
解決方法:str.join()メソッド
>>> li = ['cxk', 'cxk', 'kk', 'caibi']>>> ''.join([str(i) for i in li])'cxkcxkkkcaibi'
私たちは、あなたがメモリ空間を大幅に節約することができ、リストが大きい場合には、ジェネレータ式を使用することをお勧めします
>>> ''.join(str(i) for i in li)'3cxkkkcaibi'
スプリットストリング区切り文字は、さまざまなが含まれています
実際のシーン:異なるシンボル・スプリッタ・フィールドに基づいて、文字列を分割し、異なるデリミタ複数を含む文字列
s = "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
例えば1. Pythonのスプリット()メソッド、分割セパレータので処理時間:
>>> res = s.split(';')>>> res['ab', 'fd/ft|fs,f\tdf.fss*dfd', 'fs:uu}fsd']
だから我々は、マップの関数とすることができる文字列の区切り文字列セグメンテーションする必要があります!
>>> list(map(lambda x: x.split("|"), res))[['ab'], ['fd/ft', 'fs,f\tdf.fss*dfd'], ['fs:uu}fsd']]
結果は、2つの次元のリストになって、私たちが望む結果は、1次元のリスト、どのように行うのですか?
結果を保存するために一時的なリストを作成します。
>>> t = []>>> list(map(lambda x: t.extend(x.split("|")), res))[None, None, None]>>> t['ab', 'fd/ft', 'fs,f\tdf.fss*dfd', 'fs:uu}fsd']
結果は我々の期待に会いました!その後、セパレータの残りの処理を続け、操作がループを得るために、繰り返されます!
次のように最終的なコードです。
def my_split(s, ds): res = [s] for d in ds: t = [] list(map(lambda x: t.extend(x.split(d)), res)) res = t return res
文字列と文字列は、すべての着信以下の結果をデリミタ:
s = "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"print(my_split(s, ";/|,.}:*\t"))
実行結果: 'AB'、 'FT'、 'FS'、 'F'、 'DF'、 'FSSを' 'fdが'、 'DFD'、 'FS'、 'UU'、 'FSD']
2.再モジュールスプリット()メソッド
また、分割()メソッドを提供してくれます)(再、一時間区切りの文字列にすることができます!
import res = "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"print(re.split('[;/|,.}:*\t]', s))
結果が一致している、それは非常にシンプルで、粗ではありません!
Bの解釈は、開始または文字列に文字列の末尾場合
実際のシーンは:例えば、ディレクトリ内の一連のファイルがあります:
すべての.txtファイルとユーザー権限を持つ実行可能ファイルの.pyプログラムを書きます
ソリューション:
文字列のstr.startswith()とstr.endswith()
そして、タプルを受け入れるの.pyファイルを終了.TXTを見つけます
>>> import os>>> os.listdir(".")['app', 'config', 'requirements.txt', 'run.py', '__pycache__', 'gunicorn.conf.py', 'chromedriver', 'login_after2.png', 'readme.txt', 'slide.png', 'test.py', 'logs', 'chrome-linux.zip', 'gunicorn.pid', 'asgi.py', 'chrome-linux']>>> [name for name in os.listdir(".") if name.endswith((".txt", ".py"))]['requirements.txt', 'run.py', 'gunicorn.conf.py', 'readme.txt', 'test.py', 'asgi.py']
中国の文字列フォーマット調整存在に応じて
実際のテキスト列:例えば、日付形式は「YYYY-MM-DD」で、ログファイル、中:
当社は、米国の日付フォーマット「YYYY / MM / DD」の日付を変更したい。例えば2019年6月12日2019年6月12日の形式に
ソリューション:再サブ()メソッドの使用は、置換文字列を実行します
キャプチャグループでの正規表現は、各パートの内容をキャプチャして、文字列の代わりのキャプチャそれぞれの調整グループの順序を交換してください!
コードは以下の通りであります:
import rewith open("info.log", "r", encoding="utf-8") as f: file = f.read()print(re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', file))
グループ1、2にデフォルトで左から右に、各グループのキャプチャ、その後に括弧を必要とし、...
次のパラメータは、1,2,3グループ1、2を、それぞれ、交換したい形式です...
結果は以下の通りであります:
文字列の左、右、中央揃え
ソリューション:
1.文字列str.ljust()、str.rjust()、str.center()を中心のため!
三つの方法上記の基本的な使用法:
>>> s = 'abc'>>> s.ljust(20, '=')'abc================='>>> s.ljust(20)'abc '
すべての3つの方法が埋めるためにデフォルト値を設定することができます
2.ビルトイン形式()メソッドを使用し
>>> format(s, ">20")' abc'>>> format(s, "<20")'abc '>>> format(s, "^20")' abc '
文字列内の不要な文字を削除します。
実際のケース:
「[email protected]」:ユーザーが空白文字を入力する前と後の過剰をフィルタリング
「こんにちは世界ます\ r \ n」:テキストの編集は、「\ rを」でいくつかのウィンドウをフィルタリング
ユニコード合成シンボルテキスト除去(ピッチ):nǐhǎoMA
ソリューション:
文字列の両端を削除するにはstr.strip()、str.lstrip()、str.rstrip()メソッドを使用します
)(re.subでstr.replace()または定期的に使用してください
異なる複数の文字を同時に削除することができる文字列str.translate()メソッドを使用し
この記事は、公開番号から再生されたPythonプログラミングと実際の戦闘