1.序列
python中的序列包含6种,分别是列表,元组,字符串,Unicode字符串,buffer对象,xrange对象。
1.1通用序列操作
包括:索引(index),分片(slicing),加(adding),乘(multiplying),检查成员资格,计算序列长度,找出最大元素,最小元素。我们用列表来说明
索引. 可以从两个方向进行,其实位置是0,-1表示倒数第一个元素的位置。比如
In [9]: a=[1,2,3,4,5]
In [10]: a[0]
Out[10]: 1
In [11]: a[4]
Out[11]: 5
In [12]: a[-1]
Out[12]: 5
In [13]: a[-5]
Out[13]: 1
In [14]:data=[['Edward Gumby',42],['jon Simth',3]]
In [16]: data[1]
Out[16]: ['jon Simth', 3]
In [17]: data[1][1]
Out[17]: 3
In [18]: data[1][0]
Out[18]: 'jon Simth'
In [19]: data[1][0][0]
Out[19]: 'j'
分片. 使用分片来访问序列种的一定范围中的所有元素。number [a:b:c],c表示步长。可以想用正步长,不管负步长。
In [20]: number=[1,2,3,4,5,6,7,8]
In [21]: number[3:6]
Out[21]: [4, 5, 6]
In [22]: number[-3:]
Out[22]: [6, 7, 8]
In [23]: number[-3:-1]
Out[23]: [6, 7]
In [24]: number[:3]
Out[24]: [1, 2, 3]
In [25]: number[:]
Out[25]: [1, 2, 3, 4, 5, 6, 7, 8]
In [26]: number[1:-1]
Out[26]: [2, 3, 4, 5, 6, 7]
number[0:10:1]
Out[27]: [1, 2, 3, 4, 5, 6, 7, 8]
number[0:7:1]
Out[28]: [1, 2, 3, 4, 5, 6, 7]
number[0:7:2]
Out[29]: [1, 3, 5, 7]
number[0:6:2]
Out[30]: [1, 3, 5]
number[::2]
Out[31]: [1, 3, 5, 7]
number[8:3:-1]
Out[32]: [8, 7, 6, 5]
number[8:3:-2]
Out[33]: [8, 6]
number[8::-2]
Out[34]: [8, 6, 4, 2]
number[:4:-2]
Out[35]: [8, 6]
相加.
In [36]: [1,2,3]+[4,5,6]
Out[36]: [1, 2, 3, 4, 5, 6]
In [37]: [1,2,3]+['abc']
Out[37]: [1, 2, 3, 'abc']
数乘.
In [38]: [1,2,3]*5
Out[38]: [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
In [39]: 'abc'*5
Out[39]: 'abcabcabcabcabc'
成员资格.
In [40]: a=[1,2,3]
In [41]: 1 in a
Out[41]: True
长度,最小值,最大值
In [43]: st='abc'
In [44]: len(st)
Out[44]: 3
In [45]: max(st)
Out[45]: 'c'
In [46]: min(st)
Out[46]: 'a'
1.2.列表.
将其他序列转换成列表的方式为list().
改变列表(真正改变)的方法:元素赋值,删除元素,分片赋值
In [47]: name=list('perl')
In [48]: name
Out[48]: ['p', 'e', 'r', 'l']
In [49]: name[0]='c'
In [50]: name
Out[50]: ['c', 'e', 'r', 'l']
In [51]: del name[1]
In [52]: name
Out[52]: ['c', 'r', 'l']
In [53]: name[2:]=list('vbn')
In [54]: name
Out[54]: ['c', 'r', 'v', 'b', 'n']
In [55]: name[1:2]=[]
In [56]: name
Out[56]: ['c', 'v', 'b', 'n']
列表对象方式.
append
In [57]: lst=[1,2,3]
In [58]: lst.append(4)
In [59]: lst
Out[59]: [1, 2, 3, 4]
count.
统计某个元素出现的次数
extend.
在列表末尾一次性添加另一个序列的多个值
In [60]: a=[1,2,3]
In [61]: b=[4,5,6]
In [62]: a.extend(b)
In [63]: a
Out[63]: [1, 2, 3, 4, 5, 6]
index. 从列表中找到某个值第一个匹配的索引位置
In [64]: knights=['we','are','the','knight']
In [65]: knights.index('we')
Out[65]: 0
insert.
In [66]: number=[1,2,3,4,5,6]
In [67]: number.insert(4,'g')
In [68]: number
Out[68]: [1, 2, 3, 4, 'g', 5, 6]
pop.
In [69]: x=[1,2,3]
In [70]: x.pop()
Out[70]: 3
In [71]: x
Out[71]: [1, 2]
In [72]: x.pop(0)
Out[72]: 1
In [73]: x
Out[73]: [2]
remove. 移除指定的元素
In [74]: x=[1,2,3]
In [75]: x.remove(2)
In [76]: x
Out[76]: [1, 3]
reverse. 将列表中的元素反向存放
In [77]: x=[1,2,3]
In [78]: x.reverse()
In [79]: x
Out[79]: [3, 2, 1]
sort.
In [80]: x=[4,6,2,1,7,9]
In [81]: x.sort()
In [82]: x
Out[82]: [1, 2, 4, 6, 7, 9]
高级排序. sort参数key和reverse
In [83]: x=['aardvark','abalone','cvb','edf','cvbd']
In [84]: x.sort(key=len)
In [85]: x
Out[85]: ['cvb', 'edf', 'cvbd', 'abalone', 'aardvark']
In [87]: x.sort(reverse=True)
In [88]: x
Out[88]: ['edf', 'cvbd', 'cvb', 'abalone', 'aardvark']
$1.3.元组。将其它序列转变成元组的方式为tuple。元组中的元素不可改变,所以就没有列表那样的改变方法。