热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery逗号分割截取字符串_python字符串和文本处理

字符串和文本处理字符串是一种重要的数据形式,有价值的程序都会涉及到对于字符串的处理。幸运的是,强大的python内置了很多函数,来帮助我们

字符串和文本处理

字符串是一种重要的数据形式,有价值的程序都会涉及到对于字符串的处理。幸运的是,强大的python内置了很多函数,来帮助我们解析和处理字符串。本文会涉及到字符串编码,简单的字符串处理函数。

字符串编码

4220ed229fea6cdb148fcedd71f0b772.png

在 Python3 中,文本总是 Unicode, 由 str 类型进行表示,二进制数据使用 bytes 进行表示。不会出现python2种将 str 与 bytes 偷偷的混在一起的情况,使得两者的区别更加明显[1]。

我们知道,计算机储存的都是二进制信息,二进制信息有很多种编码方式来表示字符,有的编码方式叫BIG-5,有的编码方式叫GBK,有的编码方式叫UTF-8,不一而足。

在python3中,默认的编码方式是UTF-8。python内置了可以处理字符串的decode()函数和encode()函数,decode()函数将其它编码的字符串转化为UTF-8,encode()函数将UTF-8编码转化为其它编码[2]。

拼接字符串

使用+拼接少量字符串,形式简洁,速度很快。比如:

>>> string_1 = "Hello">>> string_2 = "World">>> string = string_1 + string_2>>> print(string)HelloWorld

对于已知值的字符串,可以依次打出其值并赋值给一个字符串变量,也可以实现字符串的连接。

# 无需加号的连接>>> string_3 = "Hello" "World">>> print(string_3)HelloWorld

随着字符串数量的增多,字符串连接的效率会迅速降低[3]。这时就需要使用join()方法,它本质上是一个函数。join()是专属于字符串的一种方法,字符串后面只要加上一个点,就能够使用该方法。

>>> parts = ['Is', 'Chicago', 'Not', 'Chicago?']# 用空格连接>>> ' '.join(parts)'Is Chicago Not Chicago?'# 用逗号连接>>> ','.join(parts)'Is,Chicago,Not,Chicago?'# 不使用任何字符,直接连接>>> ''.join(parts)'IsChicagoNotChicago?'

多个需要连接的字符串,一般会放在列表里面。然后使用join()方法连接。注意,在','.join(parts)中,parts表示待连接的字符串,逗号意味着:每个字符串之间用逗号连接。

拆分字符串

字符串的分割需要用到split()方法,它也是python的内置函数,专门用于拆分字符串。函数split()只接受一个参数,这个参数决定了字符串应该在何处拆分。

>>> line = 'Is Chicago Not Chicago?'# 用逗号分隔>>> parts = line.split(' ')>>> print(parts)['Is', 'Chicago', 'Not', 'Chicago?']# 拆分和连接是互逆的,先拆分后连接,还是原来的字符串>>> ' '.join(line.split(' ')) == lineTrue

如果想在多个字符处分隔应该怎么办呢?聪明的你不难想到,多次使用split()方法,每次使用不同的字符。具体见下面的例子:

现在我们还没有学到列表连接的方法,暂且使用+。和字符串的连接类似,用+连接列表也会有性能问题,这时需要用到append()方法,感兴趣的同学可以查阅相关资料。

首尾字符过滤

首尾字符过滤用strip()方法,strip()默认过滤掉空格' '和换行```,也可以指定过滤的字符。具体可以看下面的例子:

# 默认过滤首尾空格和换行符号>>> line = ' Hello, world! '>>> line.strip()'Hello, world!'# 过滤掉'?'>>> line = 'Is Chicago Not Chicago?'>>> line.strip('?')'Is Chicago Not Chicago'

字符的查找和替换

查找的方法是find(),用法和上面的类似,具体用法请看下面的例子。

>>> line = 'Hello, world!'>>> line.find('o')4

123find()方法,从字符串的开头开始寻找目标字符,遇到第一个符合的字母就停止寻找,并返回该字符的序号。

# 根据空格和字母c,拆分字符串line>>> line = 'Is Chicago Not Chicago?'>>> part_1 = line.split(' ')>>> print(part_1)['Is', 'Chicago', 'Not', 'Chicago?']>>> part_2 = []>>> for index in part_1:···part_2 = part_2 + index.split('c')>>> print(part_2)['Is', 'Chi', 'ago', 'Not', 'Chi', 'ago?']

替换的方法是:replace(),基本的使用格式是:字符串.replace(参数1, 参数2),参数1表示要被替换的字符,参数2表示替换成的字符。具体见下面的例子:

>>> line = 'Hello, world!'>>> line.replace('', '')'Hello, world!'# 一次性替换全部>>> line.replace('o', 'a')'Hella, warld!'

replace()方法不是惰性的,它会把所有符合条件的字符都替换成目标字符。

总结

  1. python3默认编码是UTF-8,其它编码转换成UTF-8需要使用decode()方法
  2. 少量拼接使用+,大量字符串拼接需要使用join()方法
  3. 拆分字符串需要使用split()方法,可以自定义拆分的基准字符
  4. strip()可以实现过滤首尾的特定字符,默认过滤空格和换行
  5. 字符的查找和替换分别使用find()和replace()方法

思考

# 根据一种字符串分隔字符只需要用split()方法# 两次使用split()方法也可以实现按两种字符分隔字符串# 请编写一个函数,将任意一个字符串按任意两个字符分隔# 比如输入字符串:'Hello, welcome to congge python'# 分隔参数:空格和英文逗号# 输出:['Hello', 'welcome', 'to', 'congge', 'python']def my_split(string, character1, character2): array = string.split(character1) output = [] for i in array: output = output + i.split(character2) return output



推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了使用Python编写购物程序的实现步骤和代码示例。程序启动后,用户需要输入工资,并打印商品列表。用户可以根据商品编号选择购买商品,程序会检测余额是否充足,如果充足则直接扣款,否则提醒用户。用户可以随时退出程序,在退出时打印已购买商品的数量和余额。附带了完整的代码示例。 ... [详细]
  • JS实现一键分享功能
    本文介绍了如何使用JS实现一键分享功能,并提供了2019独角兽企业招聘Python工程师的标准。同时,给出了分享到QQ空间、新浪微博和人人网的链接。 ... [详细]
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
  • Python的参数解析argparse模块的学习
    本文介绍了Python中参数解析的重要模块argparse的学习内容。包括位置参数和可选参数的定义和使用方式,以及add_argument()函数的详细参数关键字解释。同时还介绍了命令行参数的操作和可接受数量的设置,其中包括整数类型的参数。通过学习本文内容,可以更好地理解和使用argparse模块进行参数解析。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
author-avatar
狂风DKC想毕业321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有