python内置数据结构-字符串

字符串
一个个 字符(不是字节)组成的有序的序列
单引号、双引号、三引号引住的字符序列
可以被迭代,可以被索引

字符串是不可变对象

Python3,字符串就是unicode

字符串的join连接
"string".join(iterable) -> str
讲课迭代对象连接起来,使用string作为分隔符
可迭代对象本身元素都是字符串
返回一个新字符串

字符串+连接
+  将2个字符串连接到一起
返回一个新字符串


字符串分割
split(sep=None,maxsplit=-1)
从左到右
sep指定分割字符串,缺省的情况下空白字符作为分隔符
maxsplit指定分割的次数,-1表示遍历整个字符串,默认为-1
任意个空白符算一个(不指定分割符的时候)
rsplit
从右到左
字符串分割
splitlines([keepends])
按照行来切分字符串
keepends 指的是是否保留行分隔符
行分隔符包括\n,\r\n,\r等

字符串分割
partition(sep)
从左至右,遇到分隔符酒吧字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组

字符串大小写
upper()
全大写
lower()
全小写
大小写,做判断的时候用
swapcase()
交互大小写

字符串排版
title() ->str
标题每个单词都大写
capitalize() ->str
首个单词大写
center(width[,fillchar]) ->str
width打印宽度
fillchar填充的字符
zfill(width) ->str
width打印宽度,居右,左边用0填充
ljusr(width[,fillchar]) ->str左对齐
rjust(width[,fillchar]) - >str 右对齐


字符串修改
replace(old,new[,count]) - >str
字符串中找到匹配替换为新字符串,返回新字符串
count表示替换几次,不指定就是全部替换
例如'www.magedu.com'.replace('w','p',2)

strip([chars]) - >str
从字符串两端去除指定的字符集chars中所有字符
如果chars没有指定,去除两端的空白字符
lstrip
rstrip

字符串查找
find(sub[,start[,end]]) ->int
再指定的区间[start,end),从左至右,查找子串sub。找到返回索引,没找到返回-1
rfind(sub[,start[,end]]) ->int
从右到左
例如 s ='dsffsdf'
s.find('very',6,13)6到13
index
index与find的区别在于没找到索引抛出valuerror,find抛出-1
rindex

字符串查找
时间复杂度
index和count方法都是O(n)
随着列表数据规模的增大,而效率下降
len(string)
返回字符串的长度,即字符的个数

count(sub[,start[,end]]) - >int
在指定的区间 统计子串sub出现的次数

字符串判断
endswith(suffix[,start[,end]]) - >bool
在指定区间,字符串是否是suffix结尾
startswith(prefix[,start[,end]]) -> bool
在指定区间[start,end],字符串是否是prefix开头
此函数可以超界
例如s = "I am very very very sorry"
s.startswith('very',5,2000)

字符串判断is系列
isalnum()
isalpha()
isdecimal()
isdigit()
isidentifier()
islower()
isupper()
isspace()

字符串格式化
拼接字符串输出
join拼接只能使用分隔符,要求被拼接的是可迭代对象
+ 非字符串需要转化为字符串才能拼接
printf style风格的print输出
格式要求
占位符:使用%和格式字符组成,例如%s、%d等
s调用str(),r调用repr()
%03d表示打印3个位置,不够前面补零
format % values ,格式字符串和被格式的值之间使用%分隔
values只能是一个对象,或一个和格式字符串占位符数目相等的元组,或一个字典


字符串格式化
format函数格式字符串语法
格式:"{} {xxx}".format(*args,**kwargs) -> str
args是位置参数,是一个元组
kwargs是关键字参数,是一个字典
花括号表示占位符
{}表示按照顺序匹配位置参数,{n}表示取位置参数为n的值
{xxx}表示在关键字参数中搜索名称一致的
{{}}表示打印花括号

位置参数
例如"{}:{}".format('192.0.0.0',8888)
关键字参数或命名参数
"{server}{}:{}".format('192.0.0.0',8888,server='web server info:')关键字参数都放在后面
访问元素
"{0[0]}.{0[1]}".format(('magedu','com'))
对象属性访问
from collections import namedtuple Point = namedtuple('Point','x y') p = Point(4,5) "{{{0.x},{0.y}}}".format(p)

对齐
'{0}*{1}={2:<2}'.format(3,2,2*3) '{0}*{1}={2:<02}'.format(3,2,2*3) '{0}*{1}={2:>02}'.format(3,2,2*3) '{:^30}'.format('centered') '{:*^30}'.format('centered')
进制
"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42) "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42) octets = [192, 168, 0, 1] '{:02X}{:02X}{:02X}{:02X}'.format(*octets)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值