python字符串操作

常用模块

匿名 (未验证) 提交于 2019-12-02 23:49:02
常用模块 ''' 在内置数据类型(dict、list、set、tuple)的基础上,collecttions模块还提供了额外的数据类型:Counter、deque、defaultdict、namedtuple和Ordereddict等。 1、namedtuple:具名元组,具有名字的元组,生成可以使用名字来访问元素内容的tuple 2、deque:双端队列,可以快速的从另外一侧追加和推出对象 3、Counter:计数器,主要用来计数 4、OrderedDict:有序字典 5、defaultdict:带有默认值的字典 ''' #namedtuple    用具名元组来记录一个城市的信息 >>> from collections import namedtuple >>> City = namedtuple('City','name country population coordinates') #第一个是类明明,第二个是类的各个字段的名字,后者可以是由数个字符串组成的可迭代对象,或者是由空格分隔开的字段名组成的字符。 >>> tokyo = City('Tokyo','JP',36.933,(35.689722,139.691667)) >>> tokyo City(name='Tokyo', country='JP', population=36.933, coordinates

正则表达式

匿名 (未验证) 提交于 2019-12-02 23:47:01
什么是正则表达式 正则表达式就是匹配字符串内容的一种规则。 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 在线测试工具 http://tool.chinaz.com/regex/ 字符组 正则 匹配字符 配结果 明 0123456789] True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 0123456789] alse 于字符组中没有"a"字符,所以不能匹配 0-9] rue 可以用-表示范围,[0-9]就和[0123456789]是一个意思 a-z] rue 样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 A-Z] rue A-Z]就表示所有的大写字母 0-9a-fA-F] rue 以匹配数字,大小写形式的a~f,用来验证十六进制字符 字符 字符 配内容 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 配非字母或数字或下划线 \D 配非数字 \S 配非空白符 a|b 配字符a或字符b () 配括号内的表达式

python学习手册:第四章——python对象类型

老子叫甜甜 提交于 2019-12-02 23:10:57
python的单个变量长度不限 数字 数学模块math math.pi:π math.sqrt(85):开方 random模块,取随机数 import random random.random() #随机生成一个数字 random.choice([1,2,3,4,5]) #从列表中随机选出一个数字 random.randint(1,10) #从1到10随机产生一个数字,括号左右均包括 字符串 字符串严格意义上来讲是单个字符组成的序列 序列的操作 获取长度:len(str) 通过索引取值:str[0] 反向索引:str[-1] #序列倒序索引从-1开始 []内可以为任何表达式,不仅仅是一个数字常量 分片:str[1:3],包含左不包含右,str[1:3]截取的为str[1]+str[2] 分片中左括号默认为0,右括号默认为str的长度,常用变体: s = spam s[:3] > 'spa' s > "spam" s[0:3] > 'spa' s[:-1] > "spa" s[:] > 'spam' s[1:] > 'pam' d = "123456789" d[1:7:2] > '246'切片然后以2的步长取值 d[::-1] > 倒序取值,即把字符串反转过来 d[7:1:-2] > '864'反向切片 字符串具有不可修改的特性,如果需要对字符串进行修改,另外使用+进行字符串拼接

python全栈开发 * 29知识点汇总 * 180712

匿名 (未验证) 提交于 2019-12-02 22:56:40
29 正则表达式 re模块 一.正则表达式 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”, 这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式 作用: 1.规范字符串规则(通过一个规则从一段字符串中找到符合规则的内容) 2.判断某段字符串是否符合规则. (一).字符组 [ - ]从小往大指 按照ascii的顺序 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等 (二).字符 元字符 匹配内容 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 匹配非字母或数字或下划线 \D 匹配非数字 \S 匹配非空白符 a|b 匹配字符a或字符b () 匹配括号内的表达式,也表示一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符 (三).量词 量词 用法说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 (四).字符集 字符集〔〕〔^〕 李

Python 字符串操作函数二

匿名 (未验证) 提交于 2019-12-02 22:56:40
# -*- coding:utf-8 -*- line = " l want watch movie with you . " print ( line . center ( 50 )) print ( line . ljust ( 50 )) print ( line . rjust ( 50 )) # center 字符串居中 # ljust 字符串居左 # rjust 字符中居右 # lstrip 删除字符串左边的空白字符 # rstrip 删除字符串右边的空白字符 # strip 删除字符串两端的空白字符 word = " \n \t i am a bird . \n \r " print ( " ==lstrip== " ) print ( word . lstrip ()) print ( " ===rstrip== " ) print ( word . rstrip ()) print ( " ==strip== " ) print ( word . strip ()) # 空白字符包括空格 /n /t等不可见字符 nword = " hello this a new world . " print ( " ==partition== " ) # partition print ( nword . partition ( " a " )) #

Python中字符串的使用

匿名 (未验证) 提交于 2019-12-02 22:56:40
Python中字符串 字符串的表示 字符串的一共具有4中表示方法 用一对单引号来表示 ‘ Python ‘ 用一对双引号来表示 " Python " 用一对三单引号或一对三双引号来表示多行字符串 ‘‘‘ Python 语言 ‘‘‘ 用()来嵌套字符串中包含引号 ‘ 这里有个双引号(") ‘ " 这里有个单引号(‘) "    字符串的使用 索引操作――返回字符串中的单个字符 " python " [0] 切片操作――返回从m到n(不包含n)索引的子串 " Python " [1:3] 高级切片操作――返回从M到N步长为K组成的切片,M默认值为开始,N默认值为结尾 " " [1:8:2] 结果是 " 一三五七 " " " [::-1] 结果是 " " 字符串的操作符 x+y   连接两个字符串x与y n*x或者x*n   复制n次x字符串 x in s   如果x是s的子串,就返回true,否则返回false。 字符串有关的函数 len(x)   返回字符串x的长度 str(x)   返回任意类型x的字符串形式 hex(x)   整数x的16进制形式 oct(x)   整数x的8进制形式 chr(x)   x为Unicode编码,返回其对应的字符。 ord(x)   x为对应的字符,返回其对应的Unicode编码。 字符串的常用方法 str.lower()   返回字符串的副本

Python基本数据类型及使用

匿名 (未验证) 提交于 2019-12-02 22:54:36
# 基本数据类型分类   - int 整数   - float 小数   - bool 布尔值   - str 字符串 ## int 整数   - 包括正整数和负整数   - 与java、c等语言相比并没有位数限制,理论上可以是任意大## float 小数   ##float 小数     - 带有小数点的数,同样没有位数限制   - 可以使用科学计数法表示,如1.23e2,相当于123.0,0.2e-2,相当于0.002。任何使用科学计数法的数字类型都是float。 ## bool 布尔值   - 表示真假的逻辑值   - 只有两个:True/False   - True == 1 False == 0   - 在使用时,True/False和1/0在基本上可以相互替换,但两者属于不同数据类型 ## str 字符串   - 使用单引号、双引号、三单/双引号包裹的字符为字符串,如'LOVE'、"LOVE"、'''LOVE'''、"""LOVE"""   - 三单/双引号用于创建多行字符串   - str型数据内容不可变 ## 基本数据类型之间的强制类型转换   - 基本数据类型可以通过int() float() bool() str() 四个函数进行强制转换   - int()     - int(1.9)  # -> 返回 1,强制将小数点后所有内容略去

python3使用范本

匿名 (未验证) 提交于 2019-12-02 22:54:36
本文参考书目为《Python基础教程第三版》 从类C语言转而学习Python让我尤为不适应,C语言更能体现硬件底层的细节,而Python相对来说让这些细节变得十分模糊。经过一定的思考后我发现Python的优雅之处恰恰就是屏蔽了这些细节,让编程变得十分简洁高效。Python不像C那样很直白地跟底层接轨,恰恰相反,Python更热衷于跟程序员接轨,因此在学习Python的过程中,不必在意太多被封装了的细节,简单无脑调包才是Python的最大魅力之处。 1. 整除运算: print(3//2) 2. 求幂运算: print(3**2) 相当于 3 2 3 2 3. 16,8,2进制的表示: print(0xAF,010,0b0101) 4. 取绝对值: print(abs(-1.2)) 5. 浮点数取近似整: print(round(2/3)) 6. 浮点数向下向上取整: import math print(math.floor(32.9)) #相当于int(32.9) print(math.ceil(32.1)) #向上取整 1. 跨越多行的字符串: print(”’asdasd asdasdas xxxx”’) #用三引号分界,Python3使用的所有字符串都是Unicode字符串 2. 转义符: print(‘C:\nowhere’) #使用\作为转义符 3. 原始字符串

处理Python2.7的中文乱码问题

匿名 (未验证) 提交于 2019-12-02 22:54:36
Python2.7对于中文编码的问题处理的并不好,在此做一个简单的整理总结。 Python 3 中字符均使用unicode编码,unicode函数不再需要。 gbk是win环境下的一种汉字编码,其中GB2312编码也算是gbk编码 utf-8是Unix下的一种通用编码,可以对汉字编码 unicode是一种二进制编码,所有的utf-8和gbk编码都得通过unicode编码进行转译,说的直白一点,utf-8和gbk编码之间不能之间转换,要在unicode之间过个场才能转换。 程序存储、传输、操作字符串时,对代码中写好的字符串或者手动输入的字符串,程序会自动将这些字符串按照某种字符集编码(一般为本地系统字符编码)将字符串转换为字节码,这是字符的“解码”,将显示的字符转化为字节码; 程序中显示文字时,计算机读取一串字节,选择合适的字符集(一般为本地系统字符集)将字节码翻译为字符集中对应的字符,这些字符一般为本地存储的字符图片,然后调用系统的显示接口将这些“图片”打印在屏幕上。这是字符的“编码”,将字节码转化为可显示的字符。 如果字符的解码和编码采用的是相同的字符集,则将显示出来原始给定的字符,结果正常;如果不是同一种字符集,则有可能会出现乱码(因为相同的字节码在不同的字符集中可能对应不同的字符,一种字符集的某字符解码后的字节码在另一种字符集中编码之后可能是不同的字符)。

字符串的编辑距离-动态规划-Python

匿名 (未验证) 提交于 2019-12-02 22:54:36
问题描述: 给定两个字符串A和B,要用最少的操作将字符串A转换成字符串B。其中字符串操作包括: (1)删除一个字符(Insert a character) (2)插入一个字符(Delete a character) (3)修改一个字符(Replace a character) 将字符串A转换成B串所用的 最少 字符 操作数 称为字符串A到 B的编辑距离, 又称为L evenshtein距离,是在1965年, 俄罗斯数学家Vladimir Levenshtein提出的。 问题分析: 动态规划思想 (1)、dp[i][j]表示将字符串 转变为 的最小步骤数。 (2)、边界情况: 不断添加字符 ,dp[0][j] = j。 不断删除字符 ,dp[i][0] = i。 (3)、对应三种字符操作方式: 插入操作 :dp[i][j - 1] + 1 相当于为 B 串的最后插入了 A 串的最后一个字符 ; 删除操作 ; 替换操作 :dp[i - 1][j - 1] +(A[i - 1] != B[j - 1])相当于通过将 B 串的最后一个字符替换为 A 串的最后一个字符。 (4)所以 dp方程式 为: Python实现(时间复杂度:O(mn),空间复杂度:O(mn)): class Solution: def minDistance(self, word1, word2): """ :type