序列: 字符串,列表,元组
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,队列
                                                                      元组