python学习笔记---列表和元组

python中最基本的数据结构:sequence ,六种内建序列:列表 元组 字符串 Unicode字符串 buffer对象 xrange对象
列表和元组的区别在于,列表可以修改,元组不可以,列表大部分情况下可以替代元组,除了使用元组作为字典的键,因为键不能修改,所以不能使用列表
用序列存储一个人的信息

>>>edward=['Edward Gumby',42]

>>>john=['John Smith',50]

>>>database=[edward,john]

>>>database

[['Edward Gumby',42],['John Smith',50]]

 

 

        容器

1 序列---2 映射(字典)----3 集合(set):既不是序列也不是映射的容器类型
序列每个元素都有自己的编号,映射每个元素都有自己的名字(键)

 

---------通用的序列操作-----------

 

1 索引 indexing

>>>greeting[-1]

'g'

>>>fourth=raw_input('Year:')[3]

Year:2005

>>>fourth

'5'



2 分片 sliceing

访问一定范围内的元素

>>>tag='<a href="http://www.python.org">Python web site</a>'

>>>tag[9:30]

'http://www.python.org'

>>>tag[32:-4]

'python web site'

注意取的范围是 [m:n)



>>>numbers=[1,2,3,4,5,6,7,8,9,10]

>>>numbers[7:10]

[8,9,10]

现在,索引10指向第11个元素,这个元素不存在其实

>>>numbers[-3:0]

>>>[] 空序列

>>>numbers[-3:] ------捷径

[8,9,10]

>>>numbers[:3]

[1,2,3]

注意这是复制

>>>numbers[:]

[1,2,3,4,5,6,7,8,9,10]

 



步长(step length)

>>>numbers[0:10:-2]

[1,3,5,7,9]

>>>numbers[8:3:-1]

[9,8,7,6,5] --------------------[8:3)依然奏效



序列相加

>>>[1,2,3]+[4,5,6]

[1,2,3,4,5,6]

>>>[1,2,3]+'world' ---ERR

结论:两种相同类型的序列才能进行连接操作



乘法

>>>'python'*5

'pythonpythonpythonpythonpython' -----字符串也是序列

None

>>>sequence=[None]*10--------初始化一个长度为10的列表

 

>>> range(1,5) #代表从1到5(不包含5)

[1, 2, 3, 4]

>>> range(1,5,2) #代表从1到5,间隔2(不包含5)

[1, 3]

>>> range(5) #代表从0到5(不包含5)

[0, 1, 2, 3, 4]



再看看list的操作:

?

array = [1, 2, 5, 3, 6, 8, 4]

#其实这里的顺序标识是

[1, 2, 5, 3, 6, 8, 4]

(0123456)

(-7,-6,-5,-4,-3,-2,-1)

 

>>> array[0:] #列出0以后的

[1, 2, 5, 3, 6, 8, 4]

>>> array[1:] #列出1以后的

[2, 5, 3, 6, 8, 4]

>>> array[:-1] #列出-1之前的

[1, 2, 5, 3, 6, 8]

>>> array[3:-3] #列出3到-3之间的

[3]



 



那么两个[::]会是什么那?

?

>>> array[::2]

[1, 5, 6, 4]

>>> array[2::]

[5, 3, 6, 8, 4]

>>> array[::3]

[1, 3, 4]

>>> array[::4]

[1, 6]

如果想让他们颠倒形成reverse函数的效果

>>> array[::-1]

[4, 8, 6, 3, 5, 2, 1]

>>> array[::-2]

[4, 6, 5, 1]

 



你可能感兴趣的:(python)