我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中字符串的处理技巧分享

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中字符串的处理技巧分享

一、如何拆分含有多种分隔符的字符串?

实际案例

我们要把某个字符串依据分隔符号拆分不同的字符段,该字符串包含多种不同的分隔符,例如:


s = 'asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd'

其中<,>,<;>,<|>,<t>都是分隔符,如何处理?

解决方案

连续使用split()方法,每次处理一种分隔符


# 使用Python2 def mySplit(s,ds): res = [s] for d in ds: t = [] map(lambda x: t.extend(x.split(d)), res) res = t return [x for x in res if x] s = 'asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd' result = mySplit(s, ';,|t') print(result)

C:UsersAdministrator>C:PythonPython27python.exe E:python-intensive-trainings2.py ['asd', 'aad', 'dasd', 'dasd', 'sdasd', 'asd', 'Adas', 'sdasd', 'Asdasd', 'd', 'asd']

使用正则表达式的re.split()方法,一次性拆分字符串


>>> import re >>> re.split('[,;t|]+','asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd') ['asd', 'aad', 'dasd', 'dasd', 'sdasd', 'asd', 'Adas', 'sdasd', 'Asdasd', 'd', 'asd']

二、如何判断字符串a是否以字符串b开头或结尾?

实际案例

如某目录有如下文件:


quicksort.c graph.py heap.java install.sh stack.cpp ......

现在需要给.sh和.py结尾的文件夹上可执行权限

解决方案

使用字符串的startswith()和endswith()方法


>>> import os, stat >>> os.listdir('./') ['heap.java', 'quicksort.c', 'stack.cpp', 'install.sh', 'graph.py'] >>> [name for name in os.listdir('./') if name.endswith(('.sh','.py'))] ['install.sh', 'graph.py'] >>> os.chmod('install.sh', os.stat('install.sh').st_mode | stat.S_IXUSR)

[root@iZ28i253je0Z t]# ls -l install.sh -rwxr--r-- 1 root root 0 Sep 15 18:13 install.sh

三、如何调整字符串中文本的格式?

实际案例

某软件的日志文件,其中日期格式为yyy-mm-dd:


2016-09-15 18:27:26 statu unpacked python3-pip:all 2016-09-15 19:27:26 statu half-configured python3-pip:all 2016-09-15 20:27:26 statu installd python3-pip:all 2016-09-15 21:27:26 configure asdasdasdas:all python3-pip:all

需要把其中日期改为美国日期的格式mm/dd/yyy, 2016-09-15 --> 09/15/2016,要如何处理?

解决方案

使用正则表达式re.sub()方法做字符串替换

利用正则表达式的捕获组,捕获每个部分内容,在替换字符串中各个捕获组的顺序。


>>> log = '2016-09-15 18:27:26 statu unpacked python3-pip:all' >>> import re # 按顺序 >>> re.sub('(d{4})-(d{2})-(d{2})', r'2/3/1' , log) '09/15/2016 18:27:26 statu unpacked python3-pip:all' # 使用正则表达式的分组 >>> re.sub('(?P<year>d{4})-(?P<month>d{2})-(?P<day>d{2})', r'g<month>/g<day>/g<year>' , log) '09/15/2016 18:27:26 statu unpacked python3-pip:all'

四、如何将多个小字符串拼接成一个大的字符串?

实际案例

在设计某网络程序时,我们自定义了一个基于UDP的网络协议,按照固定次序向服务器传递一系列参数:


hwDetect: "<0112>" gxDepthBits: "<32>" gxResolution: "<1024x768>" gxRefresh: "<60>" fullAlpha: "<1>" lodDist: "<100.0>" DistCull: "<500.0>"

在程序中我们将各个参数按次序收集到列表中:


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

最终我们要把各个参数拼接成一个数据包进行发送:


"<0112><32><1024x768><60><1><100.0><500.0>"

解决方案

迭代列表,连续使用'+'操作依次拼接每一个字符串


>>> for n in ["<0112>","<32>","<1024x768>","<60>","<1>","<100.0>","<500.0>"]: ... result += n ... >>> result '<0112><32><1024x768><60><1><100.0><500.0>'

使用str.join()方法,更加快速的拼接列表中所有字符串


>>> result = ''.join(["<0112>","<32>","<1024x768>","<60>","<1>","<100.0>","<500.0>"]) >>> result '<0112><32><1024x768><60><1><100.0><500.0>'

如果列表中有数字,可以使用生成器进行转换:


>>> hello = [222,'sd',232,'2e',0.2] >>> ''.join(str(x) for x in hello) '222sd2322e0.2'

五、如何对字符串进行左, 右, 居中对齐?

实际案例

某个字典中存储了一系列属性值:


{ 'ip':'127.0.0.1', 'blog': 'www.anshengme.com', 'title': 'Hello world', 'port': '80' }

在程序中,我们想以以下格式将其内容输出,如何处理?


ip : 127.0.0.1 blog : www.anshengme.com title : Hello world port : 80

解决方案

使用字符串的str.ljust() , str.rjust,str.cente()进行左右居中对齐


>>> info = {'ip':'127.0.0.1','blog': 'www.anshengme.com','title': 'Hello world','port': '80'} # 获取字典中的keys最大长度 >>> max(map(len, info.keys())) 5 >>> w = max(map(len, info.keys())) >>> for k in info: ... print(k.ljust(w), ':',info[k]) ... # 获取到的结果 port : 80 blog : www.anshengme.com ip : 127.0.0.1 title : Hello world

使用format()方法,传递类似'<20','>20','^20'参数完成同样任务


>>> for k in info: ... print(format(k,'^'+str(w)), ':',info[k]) ... port : 80 blog : www.anshengme.com ip : 127.0.0.1 title : Hello world

六、如何去掉字符串中不需要的字符?

实际案例

过滤掉用户输入卡后多余的空白字符: anshengm.com@gmail.com

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

去掉文本中的unicode组合符号(音调): ‘ní hǎo, chī fàn'

解决方案

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


>>> email = ' anshengm.com@gmail.com ' >>> email.strip() 'anshengm.com@gmail.com' >>> email.lstrip() 'anshengm.com@gmail.com ' >>> email.rstrip() ' anshengm.com@gmail.com' >>>

删除某个固定位置的字符,可以使用切片+拼接的方法


>>> s[:3] + s[4:] 'abc123'

字符串的replace()方法或正则表达式re.sub()删除任意位置字符


>>> s = 'tabct123txyz' >>> s.replace('t', '') 'abc123xyz'

使用re.sub()删除多个


>>> import re >>> re.sub('[tr]','', string) 'abc123xyzopq'

字符串translate()方法,可以同时删除多种不同字符


>>> import string >>> s = 'abc123xyz' >>> s.translate(string.maketrans('abcxyz','xyzabc')) 'xyz123abc'

>>> s = 'rasdt23bAds' >>> s.translate(None, 'rtb') 'asd23Ads'

# python2.7 >>> i = u'ní hǎo, chī fàn' >>> i u'niu0301 hau030co, chiu0304 fau0300n' >>> i.translate(dict.fromkeys([0x0301, 0x030c, 0x0304, 0x0300])) u'ni hao, chi fan'

总结

以上就是为大家整理的Python中字符串的处理技巧,文中通过案例、解决方案以及实例来演示如何解决,对大家学习或者使用python具有一定的参考借鉴价值。有需要的可以参考借鉴。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中字符串的处理技巧分享

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中字符串的处理技巧分享

一、如何拆分含有多种分隔符的字符串? 实际案例我们要把某个字符串依据分隔符号拆分不同的字符段,该字符串包含多种不同的分隔符,例如:s = 'asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|a
2022-06-04

Linux strcat函数:字符串处理的实战技巧分享

strcat 是一个 C 语言库函数,用于将两个字符串连接在一起确保目标字符串有足够的空间容纳两个字符串。在使用 strcat 之前,请确保目标字符串的大小至少为两个源字符串长度之和加一(为终止空字符预留空间)。否则,可能会导致缓冲区溢出,
Linux strcat函数:字符串处理的实战技巧分享
2024-09-15

PHP查询字符串的技巧分享

这篇文章主要介绍“PHP查询字符串的技巧分享”,在日常操作中,相信很多人在PHP查询字符串的技巧分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP查询字符串的技巧分享”的疑惑有所帮助!接下来,请跟着小编
2023-06-17

掌握Ruby字符串处理技巧:高效分割字符串

Ruby字符串处理:如何分割字符串引言在编程的世界里,字符串的处理是基础且重要的一环。在Ruby中,字符串的分割是一项基本操作,它允许我们根据特定的字符或者规则来拆分字符串。本文将介绍如何在Ruby中进行字符串的分割,并给出一些实用的建议和技巧。
掌握Ruby字符串处理技巧:高效分割字符串
ruby2024-12-16

20 个 Python 高效字符串处理技巧

掌握高效的字符串操作不仅能提升代码的可读性和执行效率,还能在解决复杂问题时游刃有余。下面,让我们通过15个实用技巧,逐步探索Python字符串处理的奥秘。
字符串Python2024-11-29

Ruby字符串处理的高效技巧

《Ruby字符串处理有哪些高效技巧》教程在Ruby编程中,字符串处理是基础且关键的一环。一个良好的字符串处理习惯可以极大地提升代码的可读性、效率和性能。本教程将介绍一些高效的Ruby字符串处理技巧,帮助你编写出更简洁、高效、易维护的代码。1.字符串拼接
Ruby字符串处理的高效技巧
ruby2024-12-16

Java 处理空字符串的技巧都有哪些?(java处理空字符串的技巧有哪些 )

在Java编程中,经常会遇到处理空字符串的情况。空字符串是指长度为0的字符串,它与null不同,null表示没有任何对象引用,而空字符串是一个具体的字符串对象。以下是一些处理空字符串的技巧:一、使用字符串长度判断可
Java 处理空字符串的技巧都有哪些?(java处理空字符串的技巧有哪些  )
Java2024-12-15

Go语言中字符串转数组的实现技巧分享

Go语言中字符串转数组的实现技巧分享在Go语言中,有时候我们需要将一个字符串按照特定的分隔符转换为数组,这在处理文本数据、配置文件等时非常常见。本文将分享一些实现字符串转数组的技巧,让你在实际开发中更加便捷地处理字符串转换。一、使用st
Go语言中字符串转数组的实现技巧分享
2024-03-12

教大家玩转Python字符串处理的七种技巧

前言 日常使用python经常要对文本进行处理,无论是爬虫的数据解析,还是大数据的文本清洗,还是普通文件的处理,都是要用到字符串. Python对字符串的处理内置了很多高效的函数,非常方便功能很强大.下面是我总结的常用的7招,有了这几招就能
2022-06-04

分享如何处理matplotlib中文字符乱码的技巧和经验

解决matplotlib中文乱码的技巧与经验分享【导言】在使用matplotlib绘制图形时,我们难免会遇到中文乱码的问题。这一问题通常出现在图例、坐标轴标签等地方。为了解决这个问题,本文将分享一些实用的技巧和经验,以帮助读者轻松解决ma
分享如何处理matplotlib中文字符乱码的技巧和经验
2024-01-13

掌握Ruby字符串处理技巧:高效实现字符串反转

Ruby字符串处理如何反转字符串在编程领域,字符串操作是基础且重要的一环。其中,字符串的反转操作是最常见的需求之一。本文将详细介绍如何在Ruby中实现字符串的反转操作。1.理解字符串反转的概念首先,我们需要明确什么是字符串反转。在计算机
掌握Ruby字符串处理技巧:高效实现字符串反转
ruby2024-12-16

python技巧 计算字符串中字母出现的

有一个字符串 “aaddfdfdercfghfyttefsfsfewretr123trefg5624sdfcgvfdgte6435234532”,现在需要取出里面出现次数最多的字符第一种方法-装饰器class get_max_count_s
2023-01-30

Linux strcat函数:字符串处理的实用技巧

strcat 是一个 C 语言库函数,用于将两个字符串连接在一起确保目标字符串有足够的空间容纳两个字符串。strcat 不会检查目标字符串的大小,因此如果目标字符串太小,可能会导致缓冲区溢出,从而导致程序崩溃或安全漏洞。#include <
Linux strcat函数:字符串处理的实用技巧
2024-09-14

Python中的字符串操作技巧有哪些?

Python中的字符串操作技巧有哪些?字符串操作是Python编程中非常常见和重要的一部分。Python提供了许多内置函数和方法来进行字符串操作,让我们能够高效地处理和处理文本数据。下面我将介绍一些常用的字符串操作技巧,并给出具体的代码示例
2023-10-22

字符串处理技巧:掌握SQL LOWER函数

SQL中的LOWER函数是一种字符串处理函数,用于将给定字符串中的所有大写字母转换为小写字母转换大小写:当你需要将文本数据统一为小写或大写时,可以使用LOWER函数。例如,假设你有一个包含用户名的表,并且希望将所有用户名转换为小写以便进行
字符串处理技巧:掌握SQL LOWER函数
2024-10-24

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录