1. Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。
2. 序列中每个元素都有编号或者索引,映射中每个元素都有一个名字或者键。
3. 六种内建序列:列表、元组、字符串、Unicode字符串、buffer对象和xrang对象。
4. 列表和元组的主要区别:列表可以修改,元组不能。
5. 序列的内容可以是数字、字符或者其他数据结构。
6. 序列的索引从0开始,-1是最后一个元素的索引。
7. 分片操作:冒号分隔,左闭右开;左索引比右索引晚出现,则返回空序列;不指定索引为最开始或者最末端;
>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[-3:-1]
[8, 9]
>>> numbers[-3:1]
[]
>>> numbers[:3]
[1, 2, 3]
>>> numbers[-4:]
[7, 8, 9, 10]
8. 分片步长:默认步长为1,不能为0,左闭右开;整数步长,从左提取元素;负数步长,从右提取元素;负数步长,左索引比右索引早出现,则返回空序列;
>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[1:5:2]
[2, 4]
>>> numbers[10:5:-2]
[10, 8]
>>> numbers[:5:-2]
[10, 8]
>>> numbers[5::-2]
[6, 4, 2]
>>> numbers[0:5:-2]
[]
9.相同类型的序列可以通过相加:+;序列*数字x,原序列会被重复x次。
10. 空列表[],有元素但元素没有意义的空列表:[None]*10
11. in运算符:检查元素是否在序列中,返回布尔结果
>>> subject='$$$ Get rich now!!! $$'
>>> '$$$' in subject
True
>>> users=['a1','a2','a4']
>>> 'a3' in users
False
12. len()/max()/min() 返回序列的长度/最大元素/最小元素.
13. 常用list()函数操作字符串产生列表
>>> list('Hellp')
['H', 'e', 'l', 'l', 'p']
14. 列表操作:元素赋值numbers[2]=90; 删除元素del numbers[5]; 分片赋值:
>>> name=list("Perl")
>>> name
['P', 'e', 'r', 'l']
>>> name[1:]=list("ython")
>>> name
['P', 'y', 't', 'h', 'o', 'n']
>>> numbers=[1,5]
>>> numbers[1:1]=[2,3,4]
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers[1:3]=[]
>>> numbers
[1, 4, 5]
15. 列表方法:<注意方法和函数的区别以及是否会返回结果副本>
append()末尾追加新元素;
count()统计某元素出现次数;
extend()末尾追加另一个序列;
index()返回列表中某元素第一个匹配项的索引位置;
insert(index,***)将对象插入到列表某一个位置;
pop(index)移除列表中某一位置的元素,不指定index是最后一个,并且返回该元素的值;
remove()移除列表中某元素的第一个匹配项;
reverse()将列表中的元素反向存放;
sort()在原位置对列表按一定的顺序排序;sorted(x)函数一样,但是会返回对序列x排序后的副本;两者可以有参数指定排序使用的方法:sort(cmp)/sort(key=len)/sort(reverse=True);
cmp(x,y)函数,x<y返回负数;x>y返回正数;x=y返回0;
16. 元组用()表示,用逗号分隔;空元组(),只有一个值的元组(2,); tuple()函数功能和list()函数类似。