一.容器
Python常见有3种类型容器
- 序列:顺序结构,包括列表,元组,字符串,Unicode字符串,buffer,xrange。
- 字典:映射(哈希)结构
- 集合:集合(特殊的字典)
二.序列的通用操作
1. 索引:
通过下标访问元素,编号从0开始。也可以从尾部开始编号,最后一个元素是 -1,倒数第二个是 -2......
seq=[1,2,3,4]
print seq[2]
print seq[-1]
2. 分片:
通过下标,来访问一定范围内的元素。
- seq[起始下标:终止下标]:访问起始到终止间的所有元素(不包含终止下标)
- seq[起始下标:终止下标:步长]:步长默认为1,可以省略
- seq[:终止下标]:访问0到终止间的所有元素(不包含终止下标)
- seq[起始下标:]:访问起始到最后的所有元素
注意:Python序列的切片操作,返回的是原序列元素的副本,和原序列不在一个存储空间,所以修改切片返回的值,不会改变原序列。
3. 相加:连接2个序列
l1=[1,2,3]
l2=[4,5,6]
print l1+l2
#结果:[1, 2, 3, 4, 5, 6]
4. 乘法:序列重复
l1=[1,2,3]*3
print l1
#结果:[1, 2, 3, 1, 2, 3, 1, 2, 3]
5. 资格检验:判断元素在不在序列中
a in seq
a not in seq
6.内建函数:
- len(seq) 返回序列长度
- min(seq)返回序列最小值
- max(seq)返回序列最大值
三.列表
1. 基本形式
列表是最常用的Python数据类型,用方括号 [ ]表示,列表的数据项不需要具有相同的类型。
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
2. 特点
列表相比于其他序列,最大的特点是可变的,也就是可以修改的。
3. 列表的操作
列表除了可以使用序列通用的操作外,还可以进行一些独特的操作:
- 修改:利用下标赋值即可
list[2]='tom'
- 删除:使用del语句删除指定位置元素
del list[2]
- 分片赋值:
l1=[1,2,3]
l1[1:2]=[4,5,6,7]
print l1
#结果为:[1, 4, 5, 6, 7, 3]
4. 其他序列转列表
使用内建函数:l=list(seq)
5. 列表常用成员函数
四.元组
1.基本形式
Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号( )表示。
2.元组的创建
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tup1 = ('physics', 'chemistry', 1997, 2000);
值得注意的是,任意无符号的对象,以逗号隔开,都默认为元组。
tup=1,2,3
print tup
#结果:(1,2,3)
3. 元组的操作
由于元组不可以修改的特性,所以元组不支持修改,删除元素操作,仅支持访问。
4. 其他序列转元组
使用内建函数:tup=tuple(seq)
五.字符串
1. 字符串形式
字符串是 Python 中最常用的数据类型,我们可以使用单引号 ' 或双引号 " 来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
2. 字符串特点
字符串也是一种序列,可以使用序列中的通用函数(索引,分片,乘法,资格等)。
Python字符串不可以改变,修改实际是新建。
Python不存在单个字符类型,单个字符也被认为是字符串。
3. 字符串格式化
Str= “Hello%s world%d ” % (’my’ , 20)
%的左侧是待格式化字符串,里面包含的%标识着插入位置。
%的右侧是一个元组,是按顺序对应要插入的值。
%****的右侧一般使用元组或者字典,如果使用其他类型序列,该序列会被认为成一个值,不会进行多值插入。
常用python字符串格式化符号:
4. 三种特殊字符串
-
长字符串:’’’ ’’’
用三引号括起来,可以跨越多行,而普通字符串必须在一行内,不可以换行。
-
原始字符串:r ’ ‘
字符串内的所有字符都会与书写的方式保持一致,屏蔽了转义符的作用。
-
Unicode字符串:u ‘ ‘
引号前小写的"u"表示这里创建的是一个 Unicode 字符串。