字符串

字符串定义

  • 一个个字符组成的有序的序列,是字符的集合

  • 使用单引号、双引号、三引号引住的字符序列

  • 字符串是不可变对象

  • Python3起,字符串就是Unicode类型

字符串元素访问——下标

字符串支持使用索引访问

   sql = “select * from user where name”sql[4] #字符串‘c’

有序的字符集合,字符序列

      for c in sql:

可迭代

      lst = list(sql)

字符串join连接

“string”.join(iterable)  ->  str

将可迭代对象连接起来,使用string作为分隔符

可迭代对象本身元素都是字符串

返回一个新字符串

    lst = ['1','2','3']print("\" ".join(lst)) # 分隔符是双引号

+  -> str

将2个字符串连接在一起返回新的字符串

字符串分割

分割字符串的方法分为2类:

1.split系 -> list

将字符串按照分隔符分割成若干个字符串,并返回列表(list)

2.partition系 -> tuple

将字符串按照分隔符分割成2段,返回这2段和分隔符的元组(tuple)

split (sep = None,maxsplit = -1) -> list of string

rsplit(sep = None,maxsplit = -1) - > list of string

split从左至右,rsplit从右至左

sep指定分割字符串,缺省的情况下空白字符串(包括空格 \r \n \r\n \t)作为分隔符

maxsplit 指定分割的次数, -1表示遍历整个字符串

splitlines([keepends])-> list of string

按照 行 来切分字符串

keepend 指的是 是否保留分行符(默认False不保留;True 保留)

行分隔符包括 \n  \r\n \r等

partition(sep) -> (head,sep,tail) -> tuple of string

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

sep分割字符串,必须指定,而且不能为空“”

字符串大小写

upper()

全大写

lower()

全小写

大小写,做判断的时候用

swapcase()

交互大小写

字符串排版

title() -> str

标题的每个单词的首字母都大写

capitalize() -> str

首个单词首字母大写

center(width[,fillchar]) -> str

width 打印宽度

fullchar 填充的字符

zfill(width) -> str

width 打印宽度,居右,左边用0填充

ljust(width[,fillchar]) -> str 左对齐

rjust(width[,fillchar]) -> str 右对齐

字符串修改

repalce(old,new[,count]) -> str

从左到右在字符串中找到子串替换为心子串,返回新字符串

count表示替换几次,不指定就是全部替换

strip([chars]) -> str

从字符串两端去除指定的字符集chars中的所有字符

如果chars没有指定,去除两端的空白字符

lstrip([chars]) -> str:从左开始

rstrip([chars]) -> str: 从右开始

字符串查找

find(sub[,start[,stop]]) -> int

在指定的区间[start,end),从左至右,查找子串sub.找到返回索引,没找到返回 -1

rfind(sub[,start[,stop]]) -> int

在指定的区间[start,end),从右至左,查找子串sub.找到返回索引,没找到返回 -1

PS: strat索引位置必须在stop索引位置的左边,否则返回 -1

EXP: s = "I am very very very sorry"
s.find('very')
s.find('very',5)
s.fing('very',6,13)
s.fing('very',-10,-1)

index(sub,[,start[,stop]]) -> int

在指定的区间[start,end),从左至右,查找子串sub.找到返回索引,没找到抛出异常value error

rindex(sub,[,start[,stop]]) -> int

在指定的区间[start,end),从右至左,查找子串sub.找到返回索引,没找到抛出异常value error

时间复杂度

index和count方法都是O(n)

随着列表数据规模的增大,而效率下降

len(string)

返回字符串的长度,及字符的个数

count(sub[,start[,end]]) -> int

在指定区间[start,end),从左至右,统计子串sub出现的次数

字符串判断*

endswith(suffix[,start[,end]]) -> bool

在指定的区间[start,end),字符串是否是suffix结尾

startswith(prefix[,start[,end]]) -> bool

在指定的区间[start,end),字符串是否是prefix开头

字符串判断 is系列

isalnum() -> bool 是否是字母和数字组成

isalpha() 是否是字母

isdecimal() 是否只包含是十进制数字

isdigit() 是否全部数字(0~9)

isidentifier() 是不是字母和下划线开头,其它都是字母\数字\下划线

islower() 是否都是小写

isupper() 是否都是大写

isspace() 是否只包含空白字符

字符串格式化

字符串的格式化是一种凭借字符串输出样式的首手段,更灵活方便

.join(iterable) 拼接中能使用分隔符,且要求被拼接的是可迭代对象,(元素必须为字符换)

+ 拼接字符串直接拼接,但是非字符串需要先转换成字符串才能拼接

1.在2.5版本之前,只能使用printf style 风格的print输出

printf-style formatting,来自于c语言的printf函数

格式要求:

占位符:使用%和格式字符组成,例如%s %d等

s调用str(),r会调用repr().所有对象都可以被这2个转换

占位符中还可以插入修饰符字符,例如%03d表示打印3个位置,不够前面补0

format % values,格式字符串和被格式的值之间使用%分隔

value至少能是一个对象,或是一个和格式字符串占位符数目相等的元组,或一个字典

2.format函数格式字符语法----python鼓励使用

"{}{xxx}".format(*args , **kwargs) -> str

args是位置参数,是一个元组

kwargs是关键字参数,是一个字典

花括号表示占位符

{}表示按照顺序匹配位置参数,{n}表示取位置参数索引为n的值

{xxx}表示在关键字参数中搜索名称一致的

{{}} 表示打印花括号

位置参数

"{}{}",format('a','b'),这就是按照位置顺序用位置参数替换前面的格式字符串的占位符中

关键字参数或命名参数

"{server}{1}{0}".format("b","a",server="c"),位置参数按照序号匹配,关键字参数按照名字匹配

访问元素

"{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)

转载于:https://blog.51cto.com/13886191/2161391

Python内置数据结构——字符串string相关推荐

  1. python内置数据结构字符串

    一.字符串的创建和赋值 字符串或串(String)是由数字.字母.下划线组成的一串字符.Python 里面最常见的类型. 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它. 一个反 ...

  2. python内置数据结构教程_python课程第二周 内置数据结构——列表和元组

    5种内置数据结构:列表.元组.字典.集合.字符串.列表.字典.字符串三种被称为线性结构.针对线性结构的操作有:切片.封包和解包.成员运算符.迭代. 针对数据结构的操作有解析式:解析式分为列表解析.生成 ...

  3. 【Python】07、python内置数据结构之字符串

    一.字符串 1.定义和初始化 In [4]: s = "hello python" In [4]: s = "hello python"In [5]: s Ou ...

  4. python内置数据结构_Python内置数据结构(一)

    1.列表 (1)列表初始化 (2)下标/索引操作 (3)修改列表元素 (4)增加列表元素 1)append 2)insert 3)extend (5)删除列表元素 1)pop 2)remove 3)c ...

  5. Python内置数据结构及其复杂度

    为了使用python实现复杂数据结构与算法,需要借助python内置的基础和数据结构,主要是list和dict,明白这两种数据结构各操作的复杂度对于问题求解以及计算复杂度有着至关重要的作用. 一.li ...

  6. python字符串是有序的吗_Python内置数据结构--字符串

    一.字符串 定义: 1.一个字符组成的有序的序列,是字符的集合,示例:'abcd' 2.使用单引号.双引号.三引号引住的内容字符序列 3.字符串是字面常量,一旦定义,不可修改,且有序.可迭代 初始化: ...

  7. Python内置数据结构--列表

    本节内容: 列表 元组 字符串 集合 字典 本节先介绍列表. 一.列表 一种容器类型.列表可以包含任何种类的对象,比如说数字.子串.嵌套其他列表.嵌套元组. 任意对象的有序集合,通过索引访问其中的元素 ...

  8. python内置数据结构教程第四版答案_Python数据结构--内置数据结构

    本文提到的所有内容均是基于Python 2.7,在Python 3.x的环境下可能并不完全适用 什么是数据结构 我们可以看一下在百度百科对于数据结构是怎么定义的: 数据结构是指相互之间存在着一种或多种 ...

  9. python语言中内置的字符串排版方法_python基础知识(python内置数据类型-字符串)...

    python中的字符串 字符串基本特点 字符串的本质是字符序列.python中的字符串是不可变的,无法对原字符串做任何修改(不能用下标赋值的方式去改变字符串).但是可以将字符串的一部分赋值创建新的字符 ...

最新文章

  1. Elasticsearch入门Demo(一)
  2. 国人如此浮躁为哪般? --- 我看2018年度AI圈八大造假事件华人独占6件
  3. 为什么使用pickle模块
  4. Eigen教程(8)
  5. 计算机vb基础知识,2018年计算机二级考试VB基础知识:参数的传递
  6. Spring快速开启计划任务
  7. upper_bound()与lower_bound()
  8. Android系统运行库分为,Android系统架构
  9. 图解Team Foundation Server 2013系列
  10. Vue报错Module build failed Error Node Sass version 6.0.1 is incompatible with ^4.0.0.解决方案
  11. Linux下使用rsync最快速删除海量文件的方法分享
  12. Java重写《C经典100题》 --08
  13. Newtonsoft.Json介绍
  14. centos7下安装mysql5.7(rpm)
  15. opencv相似图片搜索
  16. 11.11如何卖到一个亿:从0到1的电商爆品打造术 电子书 PDF
  17. 解决Extraneous non-props attributes (border, class) were passed to component but could not be
  18. 域名的分类:com,cn,net的区别
  19. IE浏览器高通网站打不开dump分析选择目录总结
  20. IDEA自动把数据库表映射为实体类

热门文章

  1. flask第七篇——URL与视图函数的映射
  2. PHP消息队列实现及应用
  3. Java - HashSet源码解析
  4. 70. Climbing Stairs【leetcode】递归,动态规划,java,算法
  5. hdu 5233 Gunner II
  6. Linux 如何将eth1网卡修改为eth0
  7. Java中String,StringBuffer,StringBuilder的区别
  8. 环境变量的配置导致无法登录
  9. 解决vue在ie9中的兼容问题
  10. Spring 冬天来了,春天还远吗