python百例

127-提取字符串

2019-07-05  本文已影响98人  凯茜的老爸

有这样的字符串:“123#%4hello*world000”,要求:

>>> 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'

列表解析可以将以上代码简化成一行:

>>> [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'

第二个需求是去除字符串开头的非字母字符,这个功能的实现只要找到左边第一字母的下标,然后取切片。
以下通过两个方法完成第二点要求:

>>> 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
上一篇 下一篇

猜你喜欢

热点阅读