127-提取字符串

有这样的字符串:“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
  • 通过enumerate内建函数
>>> s1 = '123#%4hello*world000'
>>> for ind, ch in enumerate(s1):
...     if ch.isalpha():
...         break
...
>>> print(s1[ind:])
hello*world000
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,952评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,148评论 0 10
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,452评论 1 10
  • # Python关键字 部分单词没有分类整理按照顺序整理的 ``` statements语句 print输出 qu...
    ZhouLang阅读 3,696评论 0 0
  • 一.计算机在存数据的时候,都是以二进制的形式存在计算机中的(存一个数的补码) 1.原码:数据的二进制形式 正数的原...
    oxd001阅读 2,394评论 0 1