Pythonのjoin関数は非常に強力で、文字列、タプル、リスト要素を指定された文字(区切り文字)で接続して新しい文字列を生成できます。また、区切り文字を文字列にすることもできます。次へこの機能について詳しく説明してください。
1. 文法
1.1 string.join()
' sep'.join(seq)
コード分析:
**sep:**は区切り文字を表し、:、.-;などの単一文字、または: 'abc'などの文字列にすることができます。
**seq:**は、接続される要素のシーケンスを表します。これには、文字列、タプル、リスト、辞書などがあります。
注: 'sep'およびseqは文字列型のみであり、int型およびfloat型ではありません。
エラー例1(「sep」はintタイプ):
エラー例2(seqの要素はint型です):
1.2 os.path.join()
os.path.join(Path1,Path2,Path3,...)
コード分析:
path1、path2、path3 ...などを\で接続して、ファイルパスを形成します。
2. 具体例
2.1 接続する要素のシーケンスは文字列
例1-(区切り文字は1文字です)
sep =" " #デリミタ(スペース)
seq ='ハッピーホリデーの女神' #連結する文字列
str = sep.join(seq) #文字列内の要素を区切り文字で連結します
答えを得た:
' ハッピーホリデーの女神'
例2-(区切り文字は複数の文字です)
sep =" (*^__^*) " #デリミタ(スペース)
seq ='ハッピーホリデーの女神' #連結する文字列
str = sep.join(seq) #文字列内の要素を区切り文字で連結します
答えを得た:
' 女性(*^__^*)神(*^__^*)セクション(*^__^*)日(*^__^*)速い(*^__^*)楽しい'
2.2 接続する要素のシーケンスはリストです
例1-(区切り文字は1文字です)
sep ="-" #デリミタ(-)
seq =['I','2','U'] #接続するリスト
str = sep.join(seq) #リスト内の要素を区切り文字で接続します
答えを得た:
' I-2-U'
例2-(区切り文字は複数の文字です)
sep ='-女神-' #デリミタ(複数の文字)
seq =['私','君は','広く受け入れられている',''] #接続するリスト
str = sep.join(seq)
答えを得た:
' 私-女神-君は-女神-広く受け入れられている-女神-'
**注:**重複はリストに似ているため、詳細には触れません
2.3 接続する要素のシーケンスは辞書です
例1-(区切り文字は1文字です)
sep =" " #デリミタ(スペース)
seq ={'W':1,'i':2,'n':3,'k':4,'n':5} #接続する辞書
str = sep.join(seq) #辞書の要素を区切り文字で接続します
答えを得た:
' W i n k'
**注:**辞書はキーのみを接続します。キーに重複がある場合は、最初のキーのみが保持されます。
例2-(区切り文字は複数の文字です)
sep =" (^_-) " #デリミタ(スペース)
seq ={'W':1,'i':2,'n':3,'k':4,'n':5} #接続する辞書
str = sep.join(seq) #辞書の要素を区切り文字で接続します
答えを得た:
' W (^_-) i (^_-) n (^_-) k'
2.4 接続する要素はパスです
**例1 **:
path1 ='D:\\新しいフォルダ'
path2 ='WeChatパブリックアカウント'
path3 ='16.クイックスタートpython'
Path_Final = os.path.join(path1, path2, path3)
答えを得た:
' D:\\新しいフォルダ\\WeChatパブリックアカウント\\16.クイックスタートpython'
# 次のステートメントを使用して、現在のパスをパスに変更できます_Final
os.chdir(Path_Final)
**注:**差異+符号接続
path1+path2+path3
答えを得た:
' D:新しいフォルダWeChatパブリックアカウント' #セパレーターなし
**例2:興味深いパス接続を見て、その理由を考えてみてください。 ****
path1 ='D:'
path2 ='新しいフォルダ:'
path3 ='WeChatパブリックアカウント:'
path4 ='17.pythonの結合関数'
Path_Final = os.path.join(path1, path2, path3, path4)
答えを得た:
' D:新しいフォルダ:\\WeChatパブリックアカウント:\\17.pythonの結合関数'
os.path.joinはpath1の後にコネクタ\を追加せず、path2の後にコネクタを追加しました。これは、そうでないことを示しています。結果はコネクタを追加していません。なぜ追加されないのか考えてみてください。
3. 結合機能の実際の適用
3.1 pythonコードを使用して主要な要素を分解し、結合関数で出力します
num =int(input()) #プライムファクターを分解する数を入力します
factor_list =[] #主な要因のリストを保存するように設定します
def factor_fun(n):for i inrange(2, n+1): #主な要因を見つけるためのループを構築する
if n%i ==0: #nがiを除算できる場合は、iを主因子のリストに追加します
factor_list.append(i)if n!=i: #iがnと等しくなく、iがnの因数である場合は、nをiで割って、新しい番号と呼び出し係数を取得します。_楽しい機能
factor_fun(int(n/i))return factor_list
c =factor_fun(num) #関数を呼び出す
print(num,'=', end=' ',sep =' ')print('*'.join('%s'%id for id in factor_list)) #プットファクター_リスト内の数値データを文字に変換するには、*接続
結果を取得するには50を入力してください:
5050=2*5*5
3.2 結合機能を使用して、現在のパスに基づいて新しいパスを形成します
import os #パスモジュールのインポート
os.getcwd() #現在のパスを取得する
data_save = os.path.join(os.getcwd(),'data_save') #現在のパスを取得し、新しいパスを結合します
答えを得た:
' C:\\Users\\Administrator\\29_pythonの結合関数\\data_save'
3.3 0を検索します。公式アカウント全体のデザインディレクトリにある最新ファイルの絶対パスと名前
import os
import time
file_dir=os.path.dirname(os.path.abspath('.'))+'\\0.全体的なパブリックアカウントの設計' #パスを取得
lists=os.listdir(file_dir) #パスの下のファイル名を取得します
lists.sort(key=lambda fn:os.path.getatime(file_dir+"\\"+fn)) #出力ディレクトリ内のすべてのファイル名を変更時刻で並べ替えます
file=os.path.join(file_dir,lists[-1]) #出力リストの最後のファイルの絶対パスと名前
答えを得た:
' D:\\新しいフォルダ\\WeChatパブリックアカウント\\0.全体的なパブリックアカウントの設計\\写真に注意を向ける.pptx'
3.3のコードにより、特定のフォルダー内のファイルに対してバッチ操作を実行できます。
この記事は、結合機能を使用した後の私の意見の一部です。不適切な点があれば訂正してください。
Recommended Posts