127-文字列の抽出
1444 ワード
「123#%4 hello*world 000」という文字列があります.文字列のすべてのアルファベットを に取り出します.文字列の先頭の非アルファベット文字除去分析:アルファベット抽出の要求に対して、まずすべての文字列を遍歴し、文字列がアルファベットであればリストに保存し、要求結果が文字列であれば、それらをつなぎ合わせるとよい: 直接標 を外す enumerate組み込み関数
>>> s1 = '123#%4hello*world000'
>>> slist = []
>>> for ch in s1:
... if ch.isalpha():
... slist.append(ch)
...
>>> print(slist)
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> ''.join(slist)
'helloworld'
リスト解析では、上記のコードを1行に簡略化できます.>>> [ch for ch in s1 if ch.isalpha()]
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> ''.join([ch for ch in s1 if ch.isalpha()])
'helloworld'
2つ目の要件は、文字列の先頭にある非アルファベット文字を除去することです.この機能の実装は、左の最初のアルファベットの下付き文字を見つけて、スライスを取ります.2つ目の要件は、次の2つの方法で達成されます.>>> s1 = '123#%4hello*world000'
>>> for i in range(len(s1)):
... if s1[i].isalpha():
... break
...
>>> print(s1[i:])
hello*world000
>>> s1 = '123#%4hello*world000'
>>> for ind, ch in enumerate(s1):
... if ch.isalpha():
... break
...
>>> print(s1[ind:])
hello*world000