1、元组tuple定义
一个由有序元素组成的不可变的集合,使用小括号()表示;
定义:(1)tuple() 或 tuple( iterable )
eg:t = tuple()
t = ()
t = tuple(range(1,7,2))
t = (1,) #一个元素元组的定义,注意有个逗号;
2、元组元素的访问
(1)支持索引(下标),索引不可越界,否则会报IndexError异常;
tuple[ index ]:index就是索引,使用中括号访问;
3、元组查询
index(value,[start,[stop] ] )
(1)通过value,从指定区间查找列表内的元素是否匹配。当查找到第一个时立即返回索引;
(2)匹配不到,抛出ValueError异常;
注意:index和count方法的时间复杂度都是O(n),随着列表数据规模的增大,而效率下降;
len( tuple ):返回元素的个数;
4、元组tuple其他操作
元组是只读的,所以增、改、删方法都没有;
5、命名元组namedtuple
namedtuple( typename,field_names,verbose=False,rename=False )
(1)命名元组,返回一个元组的子类,并定义了字段
(2)field_names可以是空白符或逗号分割的字段的字符串
eg:from collections import namedtuple
Point = namedtuple( ‘ P ’,['x',‘y’] )
p1 = Point(11,12)
Student = namedtuple(‘Student’,‘name age’)
tom = Student(‘tom’,20)
jerry = St(‘jerry’,18)
tom.name
字符串
1、定义:
由一个个字符组成的不可变的有序的序列,是字符的集合,使用单引号,双引号,三引号引住的字符序列;
注意:Python3起,字符串就是Unicode类型;
2、字符串元素访问【索引、下标】
(1)字符串支持使用索引访问;
eg:sql = ‘select * from table’
sql[ 4 ] #字符串‘ c ’
sql[ 4 ] = 'o' #不支持此种替换,因为字符串是不可变的;如需要替换使用replace(old,new[,count])
(2)有序的字符集合,字符序列;
eg:for c in sql:
print(c)
print(type(c)) #什么类型? 字符串类型,python3中只有字符串类型
(3)可迭代;
eg:lst = list(sql)
3、字符串 join 连接
“ string ”.join(iterable) → str
(1)将可迭代对象连接起来,使用string作为分隔符;
(2)可迭代对象本身都是字符串;
(3)返回一个新字符串;
4、字符串 + 连接
+ → str
(1)将两个字符串连接在一起,返回一个新字符串;
5、字符串分割
分割字符串的方法分为2类:
split( [ sep,maxsplit ] ):将字符串按照分隔符分割成若干字符串,并返回列表;
partition:将字符串按照分隔符分割成2段,返回这两段和分隔符的元组;
split和partition区别?
(1)split是将字符串分割成若干段(有多少分多少),partition是将字符串分割成两段再加上分隔符(有多少分两段);
(2)split返回的是一个列表,partition返回的是一个元组;
split系:split【1、从左到右分割;2、sep指定分隔符,缺省为空白字符串;3、maxsplit指定分割次数,-1表示遍历整个字符串】、
rsplit【1、从右到左分割;2、sep指定分隔符,缺省为空白字符串;3、maxsplit指定分割次数,-1表示遍历整个字符串】、
splitlines( [ keepends] )【1、按照行空白符来切分字符串;2、keepends指的是是否保留行分隔符;3、行分隔符包括 \n,\r\n,\r】
partition( sep ) →(head,sep,tail):从左至右,遇到分隔符就把字符串分成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组;
注意:sep分割字符串,必须指定;
rpartition(sep) → (head,sep,tail):从右向左………………………………
6、字符串大小写
upper():全大写
lower():全小写
注意:大小写一般做判断的时候用
swapcase():交互大小写
7、字符串排版【了解】
title()→ str:标题的每个单词都大写
capitalize()→ str:首个单词大写
center( width [, fillchar] ) → str
width:打印宽度
fillchar:填充的字符
zfill(width)→ str
width:打印宽度,居右,左边用0填充
ljust( width [, fillchar] ) → str:str左对齐
rjust( width [, fillchar] ) → str:str右对齐
8、字符串修改
replace(old,new[,count] ) → str
(1)字符串中找到匹配替换为新字串,返回新字符串
(2)count表示替换几次,不指定就是全部替换
strip( [chars] ) → str
(1)从字符串两端去除指定的字符集chars中的所有字符
(2)如果chars没有指定,去除两端的空白字符
(3) lstrip( [chars] ) → str:从左开始
(4)rstrip( [chars] ) → str:从右开始
9、字符串查找
find(sub [ ,start[,end] ] ) → int:在指定的区间【start,end),从左至右,查找子串sub。返回索引,没有找到返回-1;
rfind(sub [,start[,end] ] ) → int:……,从右至左,……
index(sub [,start[,end]] ) → int:在指定的区间【start,end),从左至右,查找字串sub。找到返回索引,没找到抛出异常ValueError;
rindex(sub [,stat[,end]] ) → int:……,从右至左……
注意:find与index相比find更加高效,因为如果find没有找到不会报异常,而index会报异常;
count(sub[,start[,end]] ) → int
(1)在指定区间内【start,end),从左至右,统计字串sub出现的次数;
endswith(suffix[,start[,end]] ) → bool
(1)在指定的区间【start,end),字符串是否以suffix结尾
startwith(prefix[,start[,end]] ) → bool
(1)在指定的区间【start,end),字符串是否以preffix开头
时间复杂度:
(1)index和count方法都是O(n),随着列表数据规模的增大,而效率下降;
len(string):返回字符串长度,即字符个数;
10、字符串判断 is 系列
【1】isalnum() → bool:判断是否字母和数字组成;
【2】isalpha() → bool:是否是字母
【3】isdecimal() → bool:是否只包含十进制数字
【4】isdigit() → bool:是否全部是数字(0-9)
【5】isdentifier() → bool:是不是字母和下划线开头,其他都是字母、数字、下划线【判断是否是标识符】
【6】islower() → bool:是否都是小写
【7】isupper() → bool:是否都是大写
【8】isspace() → bool:是否只包含空白符
11、字符串格式化
format函数格式化字符串语法———Python鼓励使用
【1】“{} {xxx}”.format(*args,**kwargs)→ str
【1】args是位置参数,是一个元组
【2】kwargs是关键字参数,是一个字典
【3】花括号表示占位符
【4】{}表示按照顺序匹配位置参数,{n}表示取位置参数索引为n的值
【5】{xxx}表示在关键字参数中搜索名称一致的
【6】{{}}表示打印花括号