LoginSignup
2
1

More than 5 years have passed since last update.

【python入門】.join&.splitで任意長の文字列結合・分割

Posted at

文字列操作で.joinと.splitというのがあるが、ググって見つかった説明がこの参考のようなもので、引数で操作したい場合の説明が無いのでやってみた。
【参考】
【Python入門】list joinで文字列を連結する方法

やったこと

・文字列リストを任意の部分で連結する
・連結された文字列を任意の部分で分割してリストに戻す

・文字列リストを任意の部分で連結する

コードは以下のとおり

str_list = ['python', 'list', 'join', 'is', 'difficults', '.']

for i in range(0,7,1):
    mojiretu=' '.join(str_list[0:i])
    print('1',mojiretu)
for i in range(0,7,1):
    mojiretu=' '.join(str_list[1:i])
    print('2',mojiretu)    
for i in range(0,7,1):
    mojiretu=' '.join(str_list[2:i])
    print('3',mojiretu)       

実行結果は以下のとおり
文字が自動的に出てきて感動。

>python join_moji.py
1
1 python
1 python list
1 python list join
1 python list join is
1 python list join is difficults
1 python list join is difficults .
2
2
2 list
2 list join
2 list join is
2 list join is difficults
2 list join is difficults .
3
3
3
3 join
3 join is
3 join is difficults
3 join is difficults .

・連結された文字列を任意の部分で分割してリストに戻す

コードは以下のとおり、上記のコードに続けて実行します。
つまり、文字列

split_moji.py
mojiretu="join is difficults ."
for i in range(0,len(mojiretu)+1,1):
    str_list = mojiretu[0:i].split()    
    print("mojiretu[0:{}]".format(i),str_list)

実行結果は、以下のとおり
1文字ずつがリストになってすごい!
区切り文字" "(ブランク)はちゃんと保存するんだね。

>python split_moji.py
mojiretu[0:0] []
mojiretu[0:1] ['j']
mojiretu[0:2] ['jo']
mojiretu[0:3] ['joi']
mojiretu[0:4] ['join']
mojiretu[0:5] ['join']
mojiretu[0:6] ['join', 'i']
mojiretu[0:7] ['join', 'is']
mojiretu[0:8] ['join', 'is']
mojiretu[0:9] ['join', 'is', 'd']
mojiretu[0:10] ['join', 'is', 'di']
mojiretu[0:11] ['join', 'is', 'dif']
mojiretu[0:12] ['join', 'is', 'diff']
mojiretu[0:13] ['join', 'is', 'diffi']
mojiretu[0:14] ['join', 'is', 'diffic']
mojiretu[0:15] ['join', 'is', 'difficu']
mojiretu[0:16] ['join', 'is', 'difficul']
mojiretu[0:17] ['join', 'is', 'difficult']
mojiretu[0:18] ['join', 'is', 'difficults']
mojiretu[0:19] ['join', 'is', 'difficults']
mojiretu[0:20] ['join', 'is', 'difficults', '.']

二個ずつ、三個ずつ

str_list = ['python', 'list', 'join', 'is', 'difficults', '.']

for i in range(0,7,2):
    mojiretu=' '.join(str_list[0:i])
    print('1',mojiretu)
for i in range(0,7,2):
    mojiretu=' '.join(str_list[1:i])
    print('2',mojiretu)    
for i in range(0,7,2):
    mojiretu=' '.join(str_list[2:i])
    print('3',mojiretu)        

二個ずつの結果は以下のとおり

1
1 python list
1 python list join is
1 python list join is difficults .
2
2 list
2 list join is
2 list join is difficults .
3
3
3 join is
3 join is difficults .
mojiretu="join is difficults ."    
for i in range(0,len(mojiretu)+1,3):
    str_list = mojiretu[0:i].split()    
    print("mojiretu[0:{}]".format(i),str_list)

三個ずつの結果は、以下のとおり

mojiretu[0:0] []
mojiretu[0:3] ['joi']
mojiretu[0:6] ['join', 'i']
mojiretu[0:9] ['join', 'is', 'd']
mojiretu[0:12] ['join', 'is', 'diff']
mojiretu[0:15] ['join', 'is', 'difficu']
mojiretu[0:18] ['join', 'is', 'difficults']

まとめ

・.join&.splitで任意長の文字列結合・分割をやってみた
・リストが文章になったり、逆に文章がリストになったりちょっと感動もの

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1