文字列操作で.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で任意長の文字列結合・分割をやってみた
・リストが文章になったり、逆に文章がリストになったりちょっと感動もの