序列: 字符串,列表,元组
1,定义:
序列: 成员有序排列,并且成员可以通过下标偏移量访问
2,序列类型操作符
1, 成员关系操作符
in/not in 判断一个对象是否属于该对象序列
2, 连接操作符
+ 把一个序列和另一个相同的序列做连接
3, 重复操作符
* 拷贝多分序列
4,切片操作符
[]\[:]\[::]
3,类型转换
unicode()
basestring()
tuplue()
知识点:关于深拷贝和浅拷贝
代码场景:有一个小伙jack,tom通过切片操作拷贝jack,anny通过工厂方法拷贝jack。
>>> jack = ['jack', ['age', 20]]
>>> tom = jack[:]
来看下三者的id值:
>>> print id(jack), id(tom), id(anny)
144846988 144977164 144977388
从id值来看,三者是不同的对象。为tom和anny重新命名为各自的名称:
>>> tom[0] = 'tom'
>>> anny[0] = 'anny'
>>> print jack, tom, anny
['jack', ['age', 20]] ['tom', ['age', 20]] ['anny', ['age', 20]]
从这里来看一切正常,可是anny只有18岁,重新为anny定义岁数。
>>> anny[1][1] = 18
>>> print jack, tom, anny
['jack', ['age', 18]] ['tom', ['age', 18]] ['anny', ['age', 18]]
>>> [id(x) for x in jack]
[3073896320L, 3073777580L]
>>> [id(x) for x in tom]
[144870744, 3073777580L]
>>> [id(x) for x in anny]
[144977344, 3073777580L]
2、利用copy中的deepcopy方法进行拷贝
为了让他们之间不互相影响,用deepcopy来试试
>>> jack = ['jack', ['age', '20']]
>>> import copy
>>> tom = copy.deepcopy(jack)
>>> anny = copy.deepcopy(jack)
根据第一个思路进行重命名,重定岁数操作:
>>> tom[0] = 'tom'
>>> anny[0] = 'anny'
>>> print jack, tom, anny
['jack', ['age', '20']] ['tom', ['age', '20']] ['anny', ['age', '20']]
>>> anny[1][1] = 18
>>> print jack, tom, anny
['jack', ['age', '20']] ['tom', ['age', '20']] ['anny', ['age', 18]]
这时候他们之间就不会互相影响了。打印出每个人的内部元素每个id:
>>> [id(x) for x in jack]
[139132064, 3073507244L]
>>> [id(x) for x in tom]
[139137464, 139132204]
>>> [id(x) for x in anny]
[139141632, 139157548]
他们的内部元素也都指向了不同的对象。
小结:
思路一:利用切片操作和工厂方法list方法拷贝就叫浅拷贝,只是拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。
思路二:利用copy中的deepcopy方法进行拷贝就叫做深拷贝,外围和内部元素都进行了拷贝对象本身,而不是引用。
字符串
1,创建字符串
2,访问字符串的值
isstr=[0]\isstr=[2:]
3,改变字符串的值
isstr=astr[3:] + bstr[:5]
4,删除字符串和字符串的值
isstr=''
del isstr
字符串和操作符
比较操作符: =\< > \ !=
切片操作符:[] \ [:] 切片,正反向切片,而不能够进行反转
成员操作符: in not in
连接符: +
内建函数
cmp() 比较大小
len()
max() and min()
enumerate()
zip()
raw_input()
str()
列表
1,创建列表
list1=[]
2,访问列表
list1[1:3]
list1[2:5]
3,更新列表
list1.append()
list1.insert(2)=x
4,删除列表
del list1
操作符
= < > !=
[] [:]
+
*
内建函数
cmp()
len()
max()
min()
sorted()
reversed()
enumerate()
zip()
sum()
list()
tuple()
列表类型内建函数
list.append()
list.count()
list.extend()
list.insert()
list.pop()
list.remove()
list.reverse()
list.sort()
列表的特殊特性: 暂时不看!
1,堆栈
2,队列
元组
转载于:https://blog.51cto.com/gyp150/1351558