Python怎么删除字符

简介: Python怎么删除字符

阅读本文需要3分钟

问题:

过滤用户输入中前后多余的空白字符


‘    ++++abc123---    ‘

过滤某windows下编辑文本中的'\r':


‘hello world \r\n'

去掉文本中unicode组合字符,音调


"Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"


如何解决以上问题?


去掉两端字符串:strip(), rstrip(),lstrip()


    s = ' -----abc123++++  '
    # 删除两边空字符
    print(s.strip())
    # 删除右边空字符
    print(s.rstrip())
    # 删除左边空字符
    print(s.lstrip())
    # 删除两边 - + 和空字符
    print(s.strip().strip('-+'))


    删除单个固定位置字符:切片 + 拼接


    s = 'abc:123'
    # 字符串拼接方式去除冒号
    new_s = s[:3] + s[4:]
    print(new_s)


    删除任意位置字符同时删除多种不同字符:replace(), re.sub()

      # 去除字符串中相同的字符
      s = '\tabc\t123\tisk'
      print(s.replace('\t', ''))
      import re
      # 去除\r\n\t字符
      s = '\r\nabc\t123\nxyz'
      print(re.sub('[\r\n\t]', '', s))


      同时删除多种不同字符:translate()

      python3中为str.maketrans()做映射


      s = 'abc123xyz'
      # a _> x, b_> y, c_> z,字符映射加密
      print(str.maketrans('abcxyz', 'xyzabc'))
      # translate把其转换成字符串
      print(s.translate(str.maketrans('abcxyz', 'xyzabc')))


      去掉unicode字符中音调

        import sys
        import unicodedata
        s = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"
        remap = {
         # ord返回ascii值
         ord('\t'): '',
         ord('\f'): '',
         ord('\r'): None
         }
        # 去除\t, \f, \r
        a = s.translate(remap)
        '''
          通过使用dict.fromkeys() 方法构造一个字典,每个Unicode 和音符作为键,对于的值全部为None
          然后使用unicodedata.normalize() 将原始输入标准化为分解形式字符
          sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。
          unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。如果未定义组合类,则返回0。
        '''
        cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) #此部分建议拆分开来理解
        b = unicodedata.normalize('NFD', a)
        '''
           调用translate 函数删除所有重音符
        '''
        print(b.translate(cmb_chrs))

        往期精彩文章:

        Python之从列表推导到zip()函数的五种技巧

        Python Scrapy框架之ItemPipeline的使用

        Python Scrapy框架之SpiderMiddleware中间件

        岁月有你  惜惜相处

        相关文章
        |
        2天前
        |
        存储 算法 Python
        python 无重复字符的最长子串 多种解法
        python 无重复字符的最长子串 多种解法
        |
        8月前
        |
        Python Windows
        用 Python 将神龙大侠搞怪 GIF 转为字符动画
        用 Python 将神龙大侠搞怪 GIF 转为字符动画
        60 0
        用 Python 将神龙大侠搞怪 GIF 转为字符动画
        |
        2天前
        |
        存储 计算机视觉 Python
        python实现Gif图片的字符画
        这是一个Python实战项目,旨在将GIF动态图转化为ASCII字符动画。项目适合有一定Python基础的学习者,主要使用os、imageio、PIL库。首先,代码导入所需库,然后通过PIL创建空白图片并添加文本。接着,程序读取GIF,拆分帧并转为字符画,存入“tmp”目录。同时,代码提供了清空“tmp”目录、将灰度值映射为ASCII字符、将图片处理成字符画的函数。此外,还有创建新画布和合成GIF的步骤。主函数调用这些模块,最终将ASCII字符画合并成GIF。项目展示了将动态图像转换为ASCII艺术的过程。
        |
        2天前
        |
        索引 Python
        Python 超高频常见字符操作【建议收藏】
        Python 超高频常见字符操作【建议收藏】
        |
        2天前
        |
        Python
        在Python中实现图片转字符画灰度处理或灰色量化
        在Python中实现图片转字符画灰度处理或灰色量化
        27 1
        |
        2天前
        |
        计算机视觉 Python
        在Python中实现图片转字符画打开图片
        在Python中实现图片转字符画打开图片
        14 1
        |
        2天前
        |
        Python
        在Python中实现图片转字符画导入所需库
        在Python中实现图片转字符画导入所需库
        14 1
        |
        2天前
        |
        存储 算法 计算机视觉
        在Python中实现图片转字符画
        在Python中实现图片转字符画
        15 1
        |
        2天前
        |
        算法 Python Java
        Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
        Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
        42 0
        Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
        |
        8月前
        |
        Python
        Python转义字符与原字符
        Python转义字符与原字符
        36 1