Python中的有序列结构数据基本属性:
1,有2种取值顺序:,从前到后索引默认0开始,从后往前索引默认-1开始。
2,可以通过[初始位置:结束位置:间隔个数(负数反向)]进行对序列的切片操作
例如a=[1,2,3] a[0:2:1]就是[2,3],a[-1:-4:-1]就是[3, 2, 1]
例如a=[1,2,3] a[0:2:1]就是[2,3],a[-1:-4:-1]就是[3, 2, 1]
3,支持in和not in判断操作,判断是否包含某个元素print 1 in [1,2,3],还可以通过for(i in [])迭代遍历所有元素
4,支持排序,sorted([]),返回一个有序的list(另有sort()函数直接修改原序列),支持三个可选参数:cmp、key 和 reverse
1)cmp 指定一个定制的比较函数,这个函数接收两个参数(iterable 的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为 None。
2)key 指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为 None。
3)reverse 是一个布尔值。如果设置为 True,列表元素将被倒序排列。
(通常来说,key 和 reverse 比一个等价的 cmp 函数处理速度要快。这是因为对于每个列表元素,cmp 都会被调用多次,而 key 和 reverse 只被调用一次。)
Python中的有序列结构数据类型:
列表(list),元组(tuple),字符串(str)
列表(list)是最典型的有序列数据类型,用[]标识。
元组(tuple)使用方法基本可列表(list)一致,只是它一经定义就不允许修改。
下面详细介绍一下实际应用层面的有序列数据结构字符串(str)
Python2的str是以非Unicode编码存储的,使用起来要注意这点。
字符串前加u就是Unicode编码的字符串。
字符串前加r表示原始字符串,没有转移字符,r'\n'不是换行
Python字符串操作方法:
字符串长度 len(str)
字符串翻倍 str*n
字符串连接 str1+str2,返回一个新的str对象
字符串翻转 str=str[::-1]
字符串格式化 通过% "%s %d %f" %('hhh',1,1.2),或者"{a}{b}".format(a=1,b="ww")
字符搜索
str.find(substr, [start, [end]])),有返回第一个的序号,没有返回-1,start和end限定搜索范围str.rfind(substr, [start, [end]])先从从右边开始查找
str.index(substr, [start, [end]])与find()相同,只是在str中没有substr时,会返回一个运行时错误,感觉没用。str.rindex(substr, [start, [end]])先从从右边开始查找
str1.count(substr, [start, [end]]),返回找到的个数
字符串替换
str.replace(oldstr, newstr, [count])
#把str中的oldstar替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换
str.strip([chars])
#把str中前后chars中有的字符全部去掉,可以理解为把str前后chars替换为 None
str.lstrip([chars]),替换左边的
str.rstrip([chars]),替换右边的
str.expandtabs([tabsize])
#把str中的tab字符替换为空格,每个tab替换为tabsize个空格,默认是8个
字符串分割
str.split([sep, [maxsplit]]),返回分割后的字符串列表
#以sep为分隔符,把str分成一个list。maxsplit 表示分割的次数。默认的分割符为空白字符str.rsplit([sep, [maxsplit]])先从从右边开始处理
str.splitlines([keepends])
#把str按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
str.partition(sep),像find()和split()的结合体, 从str出现的第一个位置起,把字 符串str分成一个3元素的元组(string_pre_str,str,string_post_str), 如果str中不包含sep则string_pre_str== string。
str.rpartition(sep),从右边开始查找
字符串连接
''.join(strlist[]),把strlist中的字符串用''连接起来
字符串中字符大小写转换
str.lower() #小写
str.upper() #大写
str.swapcase() #大小写互换
str.capitalize() #首字母大写
str.title()返回 "标题化"的str,所有单词首字母大写
String.capwords(str) #String模块中的方法,它把str用 split() 函数分开,然后用 capitalize() 把首字母变成大写,最后用 join() 合并到一起
字符串输出对齐格式
str.ljust(width,[fillchar])
#输出 width 个字符,str左对齐,不足部分用 fillchar 填充,默认的为空格
str.rjust(width,[fillchar]) #右对齐
str.center(width, [fillchar]) #中间对齐
str.zfill(width) #把str变成 width 长,并在右对齐,不足部分用 0 补足
字符串的 mapping,这一功能包含两个函数
String.maketrans(from, to)
#返回一个256个字符组成的翻译表,其中 from 中的字符被一一对应地转换成 to,所以 from 和 to 必须是等长的。
str.translate(table[,deletechars])
# 使用上面的函数产后的翻译表,把str进行翻译,并把 deletechars 中有的字符删掉。需要注意的是,如果str为 unicode 字符串,那么就不支持 deletechars 参数,可以使用把某个字符翻译为 None 的方式实现相同的功能。此外还可以使用 codecs 模块的功能来创建更加功能强大的翻译表。
str.translate(table_str, del="")
根据able_str给出的表(包含256个字符)转换str的字符,要过滤掉的字符放到 del 参数中
字符串编码和解码
str.encode([encoding,[errors]])
# 其中encoding可以有多种值,比如 gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict",意思是UnicodeError。可能的值还有'ignore','replace', 'xmlcharrefreplace','backslashreplace'和所有的通过codecs.register_error注册的值。
str.decode([encoding,[errors]])
字符串测试判断函数
返回的都是bool值
str.startswith(prefix[,start[,end]])
#是否以 prefix 开头
str.endswith(suffix[,start[,end]])
#以 suffix 结尾
str.isalnum()
#是否全是字母和数字,并至少有一个字符
str.isalpha() #是否全是字母,并至少有一个字符
str.isdigit() #是否全是数字,并至少有一个字符
str.isspace() #是否全是空白字符,并至少有一个字符
str.islower() #S 中的字母是否全是小写
str.isupper() #S 中的字母是否便是大写
str.istitle() #S 是否是首字母大写的
字符串类型转换
在string模块中
string.atoi(str[,base])
#base 默认为 10,如果为 0, 那么 s 就可以是 012 或 0x23 这种形式的字符串,如果是 16 那么 s 就只能是 0x23 或 0X12 这种形式的字符串
string.atol(str[,base]) #转成 long
string.atof(str[,base]) #转成 float
Python中的有序列结构数据类型:
列表(list),元组(tuple),字符串(str)
列表(list)是最典型的有序列数据类型,用[]标识。
元组(tuple)使用方法基本可列表(list)一致,只是它一经定义就不允许修改。
下面详细介绍一下实际应用层面的有序列数据结构字符串(str)
Python2的str是以非Unicode编码存储的,使用起来要注意这点,
字符串前加u就是Unicode编码的字符串了。
字符串前加r表示原始字符串,没有转移字符,r'\n'不是换行
Python字符串操作方法:
字符串长度 len(str)
字符串翻倍 str*n
字符串连接 str1+str2,返回一个新的str对象
字符串翻转 str=str[::-1]
字符串格式化 通过% "%s %d %f" %('hhh',1,1.2),或者"{a}{b}".format(a=1,b="ww")
字符搜索
str.find(substr, [start, [end]])),有返回第一个的序号,没有返回-1,start和end限定搜索范围str.rfind(substr, [start, [end]])先从从右边开始查找
str.index(substr, [start, [end]])与find()相同,只是在str中没有substr时,会返回一个运行时错误,感觉没用。str.rindex(substr, [start, [end]])先从从右边开始查找
str1.count(substr, [start, [end]]),返回找到的个数
字符串替换
str.replace(oldstr, newstr, [count])
#把str中的oldstar替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换
str.strip([chars])
#把str中前后chars中有的字符全部去掉,可以理解为把str前后chars替换为 None
str.lstrip([chars]),替换左边的
str.rstrip([chars]),替换右边的
str.expandtabs([tabsize])
#把str中的tab字符替换为空格,每个tab替换为tabsize个空格,默认是8个
分割字符串
str.split([sep, [maxsplit]]),返回分割后的字符串列表
#以sep为分隔符,把str分成一个list。maxsplit 表示分割的次数。默认的分割符为空白字符str.rsplit([sep, [maxsplit]])先从从右边开始处理
str.splitlines([keepends])
#把str按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
str.partition(sep),像find()和split()的结合体, 从str出现的第一个位置起,把字 符串str分成一个3元素的元组(string_pre_str,str,string_post_str), 如果str中不包含sep则string_pre_str== string。
str.rpartition(sep),从右边开始查找
字符串连接
''.join(strlist[]),把strlist中的字符串用''连接起来
将字符串中的大小写转换
str.lower() #小写
str.upper() #大写
str.swapcase() #大小写互换
str.capitalize() #首字母大写
str.title()返回 "标题化"的str,所有单词首字母大写
String.capwords(str) #String模块中的方法,它把str用 split() 函数分开,然后用 capitalize() 把首字母变成大写,最后用 join() 合并到一起
字符串在输出时的对齐
str.ljust(width,[fillchar])
#输出 width 个字符,str左对齐,不足部分用 fillchar 填充,默认的为空格
str.rjust(width,[fillchar]) #右对齐
str.center(width, [fillchar]) #中间对齐
str.zfill(width) #把str变成 width 长,并在右对齐,不足部分用 0 补足
字符串的 mapping,这一功能包含两个函数
String.maketrans(from, to)
#返回一个256个字符组成的翻译表,其中 from 中的字符被一一对应地转换成 to,所以 from 和 to 必须是等长的。
str.translate(table[,deletechars])
# 使用上面的函数产后的翻译表,把str进行翻译,并把 deletechars 中有的字符删掉。需要注意的是,如果str为 unicode 字符串,那么就不支持 deletechars 参数,可以使用把某个字符翻译为 None 的方式实现相同的功能。此外还可以使用 codecs 模块的功能来创建更加功能强大的翻译表。
str.translate(table_str, del="")
根据able_str给出的表(包含256个字符)转换str的字符,要过滤掉的字符放到 del 参数中
字符串编码和解码的函数
str.encode([encoding,[errors]])
# 其中encoding可以有多种值,比如 gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict",意思是UnicodeError。可能的值还有'ignore','replace', 'xmlcharrefreplace','backslashreplace'和所有的通过codecs.register_error注册的值。
str.decode([encoding,[errors]])
字符串的测试、判断函数,返回的都是bool值
str.startswith(prefix[,start[,end]])
#是否以 prefix 开头
str.endswith(suffix[,start[,end]])
#以 suffix 结尾
str.isalnum()
#是否全是字母和数字,并至少有一个字符
str.isalpha() #是否全是字母,并至少有一个字符
str.isdigit() #是否全是数字,并至少有一个字符
str.isspace() #是否全是空白字符,并至少有一个字符
str.islower() #S 中的字母是否全是小写
str.isupper() #S 中的字母是否便是大写
str.istitle() #S 是否是首字母大写的
字符串类型转换函数,在string模块中
string.atoi(str[,base])
#base 默认为 10,如果为 0, 那么 s 就可以是 012 或 0x23 这种形式的字符串,如果是 16 那么 s 就只能是 0x23 或 0X12 这种形式的字符串
string.atol(str[,base]) #转成 long
string.atof(str[,base]) #转成 float