Python:字符串与序列
学习内容:
https://www.runoob.com/python3/python3-string.html
https://blog.csdn.net/LaoYuanPython/article/details/94361908
https://mp.weixin.qq.com/s/d0NSZ378_dehwx_vlvKYIg
引入:Python中有七种类型的序列:Unicode字符串,字符串,列表,元组,字节数组,缓冲区和Xrange对象。列表和元组上一次简单学习过,这次主要学习序列与字符串。
Part 01 序列
背景资料:
可迭代对象(Iterable):
- 定义:Python中可迭代对象是指存储了元素的一个容器。
- 访问元素方法:
iter( )
:让对象可以用for … in循环访问。
getitem( )
:可以通过“对象名称[index]”的方式访问对象中元素。 - 特点:单个可迭代对象不能独立进行迭代,要通过for … in…来完成。凡是可迭代对象都可以直接用for… in…循环访问。
- 常见的可迭代对象:
A.集合数据类型,如list、tuple、dict、set、str等;
B.生成器(generator),包括生成器和带yield的生成器函数(generator function)(暂时没学) - 判断是否可迭代方法:
isinstance(变量, Iterable) #输出True表明是可迭代对象
以下为序列的内置函数:
1.list()
把可迭代对象转换为列表。
2.tuple()
把可迭代对象转换为元组。
3.str()
把对象转换为字符串。
4.len()
返回对象中包含的元素个数。
5.max(min)()
返回序列或者参数集合中的最大(最小)值。
6.sum(iterable[, start=0])
返回序列iterable与可选参数start的总和。
7.sorted(iterable, key=None, reverse=False)
对所有可迭代的对象进行排序操作。
8.reversed()
用于反向列表中元素。
9.enumerate(sequence, [start=0])
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
10.zip([iterable, …])
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。
例:
a='this makes me bald'
b=list(enumerate(a))
print(b)#[(0, 't'), (1, 'h'), (2, 'i'), (3, 's'), (4, ' '), (5, 'm'), (6, 'a'), (7, 'k'), (8, 'e'), (9, 's'), (10, ' '), (11, 'm'), (12, 'e'), (13, ' '), (14, 'b'), (15, 'a'), (16, 'l'), (17, 'd')]
a=[56,87,19,1,0,-8]
print(sorted(a))#[-8, 0, 1, 19, 56, 87]
a=[56,87,19,1,0,-8]
print(sorted(a,reverse=False)#[-8, 0, 1, 19, 56, 87]
a=[56,87,19,1,0,-8]
print(sorted(a,reverse=True))#[87, 56, 19, 1, 0, -8]
a=[56,87,19,1,0,-8]
b=[2,6,13,90,7]
c=zip(a,b)
print(list(c))#[(56, 2), (87, 6), (19, 13), (1, 90), (0, 7)]
Part 02 字符串
Python中用‘’或“”来建立字符串。
- 检索字符串中的值
print(对象名称[对应序数])
- 改动字符串
a='this makes me bald'
print(a[:5]+'do make me bald')#this do make me bald
*字符串也具有不可修改性,切片方法与元祖类似。
- 转义字符
- 字符串运算符
- 字符串格式化
- 三引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。 - 字符串函数