#通用序列 1.Python的通用序列包括:字符串、列表、元组。
- 字符串:不可变对象,元素只能是字符
- 列表:可变对象,元素类型不限
- 元组:不可变对象,元素类型不限
这里的
可变指的是能否修改对象,如增加序列元素,修改序列元素等等
2.Python通用序列操作有:
- 索引操作:
seq[index],返回序列在该位置处的值,有越界检查 - 分片操作:
seq[index1:index2]:返回一个新的序列,有越界检查 - 序列加法:
seq1+seq2:返回一个新序列,包含seq1、seq2的拷贝 - 序列乘法:
seq*N:返回一个新序列,包含seq的N份拷贝
3.set不是序列,它是可变对象,但是元素只能是不可变类型。
字典也不是序列,它是可变对象,其元素的值是不限类型,但是键必须是不可变类型。
4.三种解析表达式:
- 列表解析表达式:
[c*4 for c in 'abcd']生成一个新列表对象, 结果为:['aaaa','bbbb','cccc','dddd'] set解析表达式:{c*4 for c in 'abcd'}生成一个新set对象, 结果为:{'aaaa','bbbb','cccc','dddd'}(打印顺序不确定)- 字典解析表达式:
{c:c*4 for c in 'abcd'}生成一个新列表对象, 结果为:{'a':'aaaa','b':'bbbb','c':'cccc','d':'dddd'}(打印顺序不确定)
5.Python 3.0 中,bytearray字节串类型是可变的
6.序列的拷贝:
7.比较操作时,Python能够自动遍历嵌套的对象,从左到右递归比较,要多深有多深。过充中首次发现的差异将决定比较的结果。
- 数字通过相对大小比较
- 字符串从左到右每个字符按照字符的字典序比较
- 列表和元组从左到右每部分内容都比较
- 字典通过排序后的
(键,值)列表比较
Python 3.0 中的字典只能进行相等、不等比较
8.当一个复合对象包含指向自身的引用时(如L.append(L)),称为循环对象。当Python在对象中检测到循环时,会打印成[...]而不会陷入无限循环。