序列包括(列表,元组,字符串,buffer对象,xrange对象)
1.列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的。
2.元组
元祖和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。元组可以嵌套。
3 字典
字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。另外,记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺 序,那么你应该在使用前自己对它们排序。
4 索引
索引值可正可负,正索引从0开始,从左往右;负索引从-1开始,从右往左。使用负数索引时,python会从最后一个元素开始计数。最后一个元素的位置编号是-1;
>>> str="test"
>>> str[1]
'e'
>>> str[-1]
't'
字符串可以直接使用索引;
>>> "zhangyan"[3]
'n'
5 分片
访问某个范围的数据
格式:分片通过冒号相隔的两个索引来实现
注意:
a。第一个索引是第一个元素的索引值,(第二个索引-1)是最后一个元素的索引值
>>> data
[1, 2, 3, 4, 5, 6, 7, 9]
>>> data[1:6] 取第1个元素到第5个元素 即data[1]到data[5]
[2, 3, 4, 5, 6]
>>> data[-5:-2] 对应的元素是data[-5]到data[-3]
[4, 5, 6]
b。如果右侧全部提取,则分片时,可以不写右侧索引,也可以将右侧索引写最后一个元素的下一个索引;
>>> data[3:]
[4, 5, 6, 7, 9]
>>> data[3:10] 最后一个元素是data[9],所以索引是9
[4, 5, 6, 7, 9]
c。如果左侧全部提取,则分片时,左侧索引可以写0,也可以不写;
>>> data[0:4]
[1, 2, 3, 4]
>>> data[:4]
[1, 2, 3, 4]
d。设置步长:不指明步长时,步长取1,也可以指定步长,步长不能为
0 ,步长也可以是负数,可以反序输出提取部分。
>>> data[1::2]
[2, 4, 6, 9]
注意:
若步长是正数的话,第一个索引要比第二个索引小
若步长是负数的话,第一个索引要比第二个索引大
>>> data[-1:-5:-2]
[9, 6]
>>> data[5:1:-2]
[6, 4]
6 序列可以相加
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
7 成员资格
使用关键字 in 检查值是否在序列中。如果值在序列中返回 “True”,否则返回“False”。值可以是元素也可以是子序列。
>>> str="zhangyan"
>>> 'an' in str
True
>>> mystr="yan"
>>> mystr in str
True
8 长度,最大值,最小值
- len :返回序列包含元素的数量;
- min :返回序列中的最小值;
- max :返回序列中的最大值
>>> data = [12,31,2,1,3,12,3,13,131234,12]
>>> len(data)
10
>>> max(data)
131234
>>> min(data)
1
9 list可以将字符串转换成列表
>>> list("zhangyan")
['z', 'h', 'a', 'n', 'g', 'y', 'a', 'n']
10 列表操作
>>> data
[0, 4, 0, 5, 1]
>>> del data[4]
>>> data
[0, 4, 0, 5]
>>> str=list("zhang yan")
>>> str
['z', 'h', 'a', 'n', 'g', ' ', 'y', 'a', 'n']
>>> str[6:]=list("jie")
>>> str
['z', 'h', 'a', 'n', 'g', ' ', 'j', 'i', 'e']
>>> str[0:0]=list("my name is")
>>> str
['m', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', 'z', 'h', 'a', 'n', 'g', ' ', 'j', 'i', 'e']
11 列表方法
append:用于在列表末尾追加一个新的元素;列表调用该方法后,直接被该 方法修改;
>>> test=list("1")
>>> test
['1']
>>> test.append("my name is")
>>> test
['1', 'my name is'] 追加了一个string元素
>>> test.append(list("zy"))
>>> test
['1', 'my name is', ['z', 'y']] 追加了一个list元素
>>> test[2][0]
'z'
count:用于统计
某个元素在列表中出现的次数;
>>> test
['1', 'my name is', ['z', 'y'], 'a', 'a', 'a']
>>> test.count('a')
3
>>> test.count('y') y不是一个元素
0
extend:在列表的末尾一次性追加另一个列表中的多个元素,该方法也可以直接修改原列表,这也是与列表连接操作(+)的区别,和+=等效;
>>> test.extend(list("abc"))
>>> test
['1', 'my name is', ['z', 'y'], 'a', 'b', 'c']
>>> test
['1', 'my name is', ['z', 'y']]
>>> test=test+list("abc")
>>> test
['1', 'my name is', ['z', 'y'], 'a', 'b', 'c']
>>> test+=list("def")
>>> test
['1', 'my name is', ['z', 'y'], 'a', 'b', 'c', 'd', 'e', 'f']
红色标注三种方法等效
index:找出某个匹配项第一次出现的索引;
>>> test
['1', 'my name is', ['z', 'y'], 'a', 'b', 'c', 'd', 'e', 'f']
>>> test.index('a')
3
insert:在列表中插入新的对象;
>>> test.insert(2,list("web"))
>>> test
['1', 'my name is', ['w', 'e', 'b'], ['z', 'y']]
pop:移除列表中的一个值(默认是最后一个),并返回该元素的值;
>>> test
['1', 'my name is', ['w', 'e', 'b'], ['z', 'y']]
>>> test.pop()
['z', 'y']
>>> test
['1', 'my name is', ['w', 'e', 'b']]
>>> test.pop(1)
'my name is'
>>> test
['1', ['w', 'e', 'b']]
remove:用于移除某个值在列表中的第一个匹配项;
>>> test
['1', ['w', 'e', 'b'], 'a', 'b', 'c']
>>> test.remove('a')
>>> test
['1', ['w', 'e', 'b'], 'b', 'c']
reverse:将列表中的值反向存放;
>>> test=[1,2,3,4,5]
>>> test.reverse()
>>> test
[5, 4, 3, 2, 1]
sort:对列表进行排序;
>>> test
[3, 6, 1, 2, 3, 9, 7]
>>> test.sort()
>>> test
[1, 2, 3, 3, 6, 7, 9]
>>> lst
['asdf', 'qwersf', 'aaf', 's', 'afasfd', 'qre']
>>> lst.sort()
>>> lst
['aaf', 'afasfd', 'asdf', 'qre', 'qwersf', 's']
>>> lst.sort(key=len)
>>> lst
['s', 'aaf', 'qre', 'asdf', 'afasfd', 'qwersf']
sorted内建函数:对序列进行反序,并返回一个列表
sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。