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中间件

        岁月有你  惜惜相处

        相关文章
        |
        1月前
        |
        算法 前端开发 数据处理
        小白学python-深入解析一位字符判定算法
        小白学python-深入解析一位字符判定算法
        47 0
        |
        8天前
        |
        人工智能 Shell 开发工具
        [oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
        本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
        9 1
        |
        2月前
        |
        Python
        python获取字符串()里面的字符
        在Python中,如果你想获取字符串中括号(比如圆括号`()`、方括号`[]`或花括号`{}`)内的字符,你可以使用正则表达式(通过`re`模块)或者手动编写代码来遍历字符串并检查字符。 这里,我将给出使用正则表达式的一个例子,因为它提供了一种灵活且强大的方式来匹配复杂的字符串模式。 ### 使用正则表达式 正则表达式允许你指定一个模式,Python的`re`模块可以搜索字符串以查找匹配该模式的所有实例。 #### 示例:获取圆括号`()`内的内容 ```python import re def get_content_in_parentheses(s): # 使用正则表达
        97 36
        |
        12天前
        |
        人工智能 开发工具 Python
        [oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
        本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
        11 0
        |
        6月前
        |
        JavaScript IDE 开发工具
        python中的SyntaxError: invalid character in identifier(语法错误:标识符中有无效字符)
        【5月更文挑战第14天】python中的SyntaxError: invalid character in identifier(语法错误:标识符中有无效字符)
        505 8
        |
        2月前
        |
        索引 Python
        python之判断字符里面有没有|8
        python之判断字符里面有没有|8
        |
        2月前
        |
        Python
        Python ASCII码与字符相互转换
        Python ASCII码与字符相互转换
        |
        2月前
        |
        Python
        [oeasy]python035_根据序号得到字符_chr函数_字符_character_
        本文介绍了Python中的`ord()`和`chr()`函数。`ord()`函数通过字符找到对应的序号,而`chr()`函数则根据序号找到对应的字符。两者互为逆运算,可以相互转换。文章还探讨了单双引号在字符串中的作用,并解释了中文字符和emoji也有对应的序号。最后总结了`ord()`和`chr()`函数的特点,并提供了学习资源链接。
        28 4
        |
        3月前
        |
        数据采集 Python
        |
        2月前
        |
        Unix 编译器 C语言
        [oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ordinal_
        [oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ord
        22 0