序列类型是一维元素向量,元素之间存在先后关系,通过序号访问(从0开始)。
序列类型分为字符串、列表和元组。
一、字符串(str)
1、表示:单引号和双引号都可以表示单行字符串,两者作用相同。三引号可以表示单行或多行字符串。
2、输入:input()函数将输入内容作为字符串,可以使用eval()函数来处理字符串。
3、输出:
print()函数可以直接打印字符串。
字符串以Unicode编码存储,因此字符串的英文和中文字符都算1个字符。
>>> s="人生苦短,我学Python"
>>> s[:4]
'人生苦短' #字符串
>>> print(s[:4]) #直接打印字符串就没有引号了
人生苦短
>>> print(s[5:])
我学Python
>>> print(s[:])
人生苦短,我学Python
4、字符串操作符
对于字符串s
作用 | 对应操作符 |
---|---|
连接字符串 | + |
索引 | s[i] |
切片 | s[N:M] |
复制n次 | s * n 或 n * s |
子串判断 | x in s (是返还True否则False) |
5、字符串的格式化
1、字符串使用槽来进行格式化,要记住一些格式控制标记,且格式内容需要按照一定顺序书写。
2、一些常见格式化控制字符
作用 | 对应控制字符 |
---|---|
\b | 回退一格 |
\n | 换行 |
\r | 回车 |
\t | 水平制表(个人理解为一个Tab长度的空格) |
如:
>>> print("haha\tbttt")
haha bttt
>>> print("haha\abttt") # \a 这个叫铃响
hahabttt
二、列表(list)
1、概念
①列表的长度与内容可变
②可以使用list()函数将字符串或元组转换成列表类型
③列表与数组的不同之处在于:创建列表变量不需要预先分配空间大小,可在使用中动态插入元素;列表不要求元素类型一致
2、操作
设有列表ls1和ls2
(1)赋值
①将ls1的值赋给ls2只是产生一个新的引用,不会生成新的列表对象,所以列表要通过显式的数据赋值才能生成,如:
>>> ls1=[425,"BIT",1024]
>>> ls2=ls1
>>> ls1[0]=0
>>> ls2
[0, 'BIT', 1024]
我们把ls1列表里的一个元素给修改了,ls2只是对ls1的引用,所以ls2也会改变。
其实ls1和ls2都是实际数据的表示或引用,真实数据只储存一份。
②当使用一个列表改变另一个列表的值时,不要求长度匹配
>>> ls1=[1,2,3,4,5,6]
>>> ls2=[8,9]
>>> ls1[0:4]=ls2
>>> ls1
[8, 9, 5, 6] #少减
ls2=[1,2,3]
>>> ls1[0,2]=ls2
>>> ls1
[1, 2, 3, 5, 6] #多增
(2)遍历列表
>>> ls=["E","m","p","t","y"]
>>> for i in ls:
print(i,end='')
Empty
>>>
(3)排序
按照从小到大排序,可以使用Python内置函数sorted()
>>> ls=[2,5,7,1,6]
>>> sorted(ls)
[1, 2, 5, 6, 7]
如果要从大到小排序,一开始,我直接把reversed()函数和sorted()函数嵌套使用
错误示范(好傻):
>>> reversed(sorted(ls))
<list_reverseiterator object at 0x0000000002F51898>
后来找到了正确示范(目前没有看到其它方法):
>>> sorted(ls,reverse=True)
[8, 5, 4, 3]
(4)比较两个列表
列表的比较大小实际上是单个数据项的逐个比较,相同下标的元素依次进行比较。
>>> ls1=[5,9,8]
>>> ls2=[7,5,3]
>>> ls1>ls2
False
>>> ls1<ls2
True
>>>
>>> ls1=[1,2,3,4]
>>> ls2=[1,2,3]
>>> ls1>ls2
True
>>> ls1<ls2
False
三、元组(tuple)
1、元组类型一旦创建就不能被修改。
2、一个元组可以作为另一个元组的元素 。
参考:
嵩天、礼欣、黄天羽著 《Python语言程序设计基础(第2版)》 高等教育出版社 2017
如有错误,敬请指正。谢谢!