一、字符串
单引号定义
S = 'spam'
len(S) 求长度
第一位索引从0开始 S[0]='s' 最后一位也可以从-1开始索引 S[-1] = 'm' S[-2] = ‘a’
几个常用到的索引计算方法
S[1:] = 'pam' 从第一个一直到最后一个
S[0:3] = 'spa' 从m开始到n-1 不包括n 本例为从0到2
S[:3] = 'pam' 从第一个开始 到n-1 不包括n 本例为从0到2
S[:-1] = 'pam' 除了最后一个数
S[:] = 'spam' 所有数
S[i:j:k] 从i开始 步进为k 到 j-1 为止
S[::2] 从头到尾 步进为2
S[::-1] 从头到尾 从右至左取数
字符串不能直接改变 S[1] = 'c' 错误 不能直接这样赋值 转为list之后可以改变
S= 'summary'
L = list(S)
L[3] = 'a'
S=''.join(L) 将列表合并成一个字符串 ''之间为空的 代表连接符是空的
S = 'sumaary'
二、列表
方括号定义
L = [123,'spa',1.23]
索引过程和字符串一样
L.append('NI') L = [123,'spa',1.23,'NI'] 末尾插入一项
L.pop(2) L = [123,'spa','NI'] 删除索引为2的项
三、字典
大括号定义
D={ 'food':'spam' , ' quantity':4 , 'color':'pink' } 键:值 通过键来进行索引
索引 D['food'] = 'spam'
对于字典的扩充 可以直接定义 D['e'] = 99 D={ 'food':'spam' , ' quantity':4 , 'color':'pink', 'e':99 }
D.has_key('f') 查看是否有键f
四、元组
用括号定义 定义之后不能改变
T = (1,2,3,4) 但是可以扩充 T+ (5,6) T = (1,2,3,4,5,6)
五、共享引用
1
L1 = [2,3,4]
L2 = L1
L1[0] = 24
执行来该语句之后 L2 = [24,3,4],可以看出来 L2和L1指向同一块地址 L1改变 L2也会跟着L1一起改变
2
L2 = L1[:] L2的元素全部等于L1的元素 L1改变 L2不变 两者指向了不同的区域
3
L = [1,2,3]
M=L
L==M true 测试两者值是否相同
L is M true 测试两个变量是否指向同一个对象
L = [1,2,3]
M = [1,2,3]
L==M true 测试两者值是否相同
L is M false 测试两个变量是否指向同一个对象 他们并没有指向同一个内存空间
L =2
M = 2
L==M true 测试两者值是否相同
L is M true 测试两个变量是否指向同一个对象 他们并没有指向同一个内存空间 但是 对于小的整数核字符串被缓存并复用了,所以is告诉我们两者引用的是同一个对象