如何去掉字符串中不需要的字符,python高级编程技巧

实际案例
  1. 过滤掉客商输入中左右多余的空白字符:” hello “
  2. 过滤某Windows系统下某编辑文件应用在编写文本时插入的”r”

减轻方案:

  • 艺术一:字符串strip(),lstrip()和rstrip()方法去掉字符串两端,侧边和左边的字符;
  • 主意二:删除单个固定地点的字符,能够选拔切成丝+拼接的艺术;
  • 方法三:字符串的replace()方法或正则表明式re.sub()删除任性地方字符。

# -*- coding: utf-8 -*-import res1 = " hello "# 方法一print s1.strip()s2 = "hellorn"# 方法二print s2[:-2]# 方法三,replace()print s2.replace# 方法三,sub.re()print re.sub("[r]", "", s2)

运营结果为:

hellohellohellohello

注:本文实际案例中有一新鲜案例,自身在Windows系统和Linux系统下都未中标解决,希望阅读此文的大佬能协理答疑,感谢!

标题为如何去除Unicode中结成字符:’zhào’。

翻开相关学科得知此难题宜采取translate()方法,其代码如下:

u = u'zhào'print u.translate({0xe0:None})

其出口结果为:

zho

输出结果中‘zhào’的‘à’去除了,但大家本意是去除‘a’的音调。除此而外,本方法有个难题正是急需事先知情Unicode中结成字符的ASCII。对于这几个标题,大家可在shell下意识到,但若在Python
3.X本子中就不可能通过shell得知。

依据北门吹雪O多谢)的博客可取得Python 3.X本子的消除办法,其代码如下:

import sysimport unicodedatau = "Zhào"''' 通过使用dict.fromkeys() 方法构造一个字典,每个Unicode和音调作为键,对于的值全部为None 然后使用unicodedata.normalize() 将原始输入标准化为分解形式字符 sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。 unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。 如果未定义组合类,则返回0。'''s = unicodedata.normalizecmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining''' 调用translate 函数删除所有音调'''print(s.translate)

运作结果为:

Zhao

Python 2.X的本子的代码如下:

import sysimport unicodedatau = u'zhào's = unicodedata.normalizecmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining))print s.translate

运营结果与Python 3.X版本的结果一致。

一. 哪些将多个小字符串拼接成一个大的字符串

事实上案例:

  1. 在统一准备某互连网程序时,大家自定义了三个基于UDP的网络契约,依照固定程序向服务器传递一雨后苦笋参数:
    hwDetect: “<0112>”
    gxDepthBits: “<32>”
    gxResolution: “<1024×768>”
    gxRefresh: “<60>”
    fullAlpha: “<1>”
    lodDist: “<100.0>”
    DistCull: “<500.0>”
应用方案:

方法1. 迭代列表,一而再使用 ‘+’ 操作,依次拼接每三个字符
方法2. 使用 str.join()
方法,更加快捷的拼接列表中有着字符。(引入应用

代码示例:
# _*_ coding:utf-8 _*_
# @Author   : TianYu
# @Time     : 2017/10/13 16:19
# @File     : 如何将多个小字符串拼接成一个大的字符串.py

#方法 1 :使用 '+' 号
s1 = 'abcdefg'
s2 = '12345'
print(s1 + s2)# 本质上是运算符重载:str.__add__(s1, s2)
print(s1 > s2) #True :str.__gt__(s1, s2)

#################################################

pl = ["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]

# 方法 1 (不推荐,存在巨大的浪费)
s = '' #空字符串进行拼接
for p in pl:
    s += p
print(s)

#方法 2(推荐使用,列表很长的情况下):使用str.join()方法,更加快速的拼接列表中的所有字符串
print(''.join(pl)) #一次性的拼接,不浪费

#当列表中的数据类型不同时 如何进行字符串的拼接?
s = ['abc', 123, 45, 'xyz']
print(''.join([str(x) for x in s])) #列表解析,不推荐,生成新的列表,在文件很大的情况下不适用
#推荐使用生成器表达式,[] 变为 ()
print(''.join((str(x) for x in s))) #(str(x) for x in s)是generator object(生成器对象)

二. 怎么着对字符串实行左、右、居中对齐?

事实上案例:

  1. 有个别字典存款和储蓄一名目大多属性值,
    {
    “DistCull”:500.0,
    “SmallCull”:0.04,
    “farclip”:366,
    “lodDist”:100.0,
    “trilinear”:40
    }
    在程序中,大家想以以下工整的格式将其剧情输出,如什么地点理?
    输出:
    DistCull : 500.0
    SmallCull : 0.04
    farclip : 366
    永利集团304com,lodDist : 100.0
    trilinear : 40
实施方案:

方法1.行使字符串的 str.ljust(), str.rjust(), str.center()
方法实行左右居中对齐。
方法2.使用 format()方法,传递类似‘<20’, ‘>20’,
‘^20’
参数落成一样职分。

发表评论

电子邮件地址不会被公开。 必填项已用*标注