Python内建6种序列,最常用的是列表和元组,其他有字符串、Unicode字符串、buffer对象和xrange对象。
列表和元组的主要区别是,列表可以修改,元组则不能。一般来说,在几乎所有的情况下列表都可以代替元组,例外的情况是,使用元组作为字典的键,因为键不能修改。
通用序列操作
所有序列类型都可以进行某些特定的操作,包括索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员,计算序列长度、找出最大元素、最小元素。
索引:
>>>greeting = "Hello"
>>>greeting[2]
'l'
>>>greeting[0]
'H'
分片:
>>> numbers= [1,2,3,4,5,6,7,8,9,0]
>>>numbers[1:3]
[2, 3]
>>>numbers[:]
[1, 2, 3, 4, 5, 6,7, 8, 9, 0]
>>>numbers[-5:-1]
[6, 7, 8, 9]
>>>numbers[-2:]
[9, 0]
>>>numbers[0:9:2]
[1, 3, 5, 7, 9]
>>>numbers[9:5:-1]
[0, 9, 8, 7]
序列相加:
>>>n1=[1,2,3,4,5]
>>>n2=[6,7,8,9,0]
>>> n1 + n2
[1, 2, 3, 4, 5, 6,7, 8, 9, 0]
>>> 'Hello,' + 'World!'
'Hello, World!'
乘法:
>>> [10] *5
[10, 10, 10, 10, 10]
>>>'Hello_' * 5
'Hello_Hello_Hello_Hello_Hello_'
成员资格:
>>>greeting = 'Hello'
>>> 'H' ingreeting
True
>>> 'h' ingreeting
False
>>> users =['Tom', 'Jerry', 'Jack']
>>>raw_input("Please input your name: ") in users
Please input yourname: Tom
True
长度、最小值、最大值
>>> num =[1,10,20,30,40]
>>>len(num)
5
>>>max(num)
40
>>>min(num)
1
列表中的方法
1、list函数
>>>list('Hello, World')
['H', 'e', 'l', 'l','o', ',', ' ', 'W', 'o', 'r', 'l', 'd']
>>>list('12345')
['1', '2', '3', '4','5']
2、元素赋值
>>> num =[6,3,4,5]
>>> num[0]= 1
>>> num
[1, 3, 4, 5]
>>>num[1:1] = [2]
>>> num
[1, 2, 3, 4, 5]
3、删除元素
>>> users =['Tom', 'Jerry', 'Jack']
>>> delusers[0]
>>> users
['Jerry', 'Jack']
4、append
在列表末尾追加新的对象
>>> num =[1,2,3]
>>>num.append(4)
>>> num
[1, 2, 3, 4]
5、count
统计某个元素在列表中出现的次数
>>>word=['to', 'be', 'or', 'not', 'to', 'be']
>>>word.count('to')
2
6、extend
在列表的末尾追加另一个序列中的多个值
>>> n1 =[1,2,3]
>>> n2 =[4,5,6]
>>>n1.extend(n2)
>>> n1
[1, 2, 3, 4, 5, 6]
>>> n2
[4, 5, 6]
7、index
找出某个值第一个匹配项的索引位置
>>>word=['to', 'be', 'or', 'not', 'to', 'be']
>>>word.index('be')
1
8、insert
将对象插入列表
>>> disney= ['Tom', 'Jerry']
>>>disney.insert(1,'and')
>>> disney
['Tom', 'and','Jerry']
9、pop
移除列表中的一个元素(默认是是最后一个),并且返回该元素的值。
>>> x =[1,2,3,4,5]
>>> x.pop
<built-in methodpop of list object at 0x02BAF850>
>>> x.pop()
5
>>> x.pop()
4
10、remove
移除列表中某个值的第一个匹配项
>>>word=['to', 'be', 'or', 'not', 'to', 'be']
>>>word.remove('be')
>>> word
['to', 'or', 'not','to', 'be']
11、reverse
将列表中的元素顺序反转
>>> x =[0,1,2,3,4,5]
>>>x.reverse()
>>> x
[5, 4, 3, 2, 1, 0]
12、sort
在原位置对列表进行排序
>>> st =[23,78,99,10,5]
>>>st.sort()
>>> st
[5, 10, 23, 78, 99]
获取已排序列表的副本
>>> x =[23,78,99,10,5]
>>> y =sorted(x)
>>> x
[23, 78, 99, 10, 5]
>>> y
[5, 10, 23, 78, 99]
13、用列表做堆栈(“last-in, first-out”)后进先出
>>> stack =[3, 4, 5]
>>>stack.append(6)
>>>stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>>stack.pop()
7
>>>stack.pop()
6
>>> stack
[3, 4, 5]
14、用列表做队列(“first-in,first-out”)先进先出
>>> fromcollections import deque
>>> queue =deque(["Eric", "John", "Michael"])
>>>queue.append("Terry")
>>>queue.append("Graham")
>>> queue
deque(['Eric','John', 'Michael', 'Terry', 'Graham'])
>>>queue.popleft()
'Eric'
>>>queue.popleft()
'John'
>>> queue
deque(['Michael','Terry', 'Graham'])
>>>queue.appendleft("Dec")
>>> queue
deque(['Dec','Michael', 'Terry', 'Graham'])