一、列表(list) 1.列表的内置函数为 list 。列表可以是普通列表、混合列表,也可以是空列表,列表中可以添加列表。列表内容可以是整数,可以是浮点数,也可以是字符串。元素的位置是从“0”开始的。
2.新建列表: 新建列表 变量 = []
3.len() 函数可以获取列表元素的个数
4.用索引访问列表中每一个元素的位置列表[位置]
A.可以正向搜索(默认起始位置为“0”)
B.也可以逆向搜索(默认起始位置为“-1”)
当索引超出了范围时,Python会报一个IndexError错误。
5.更改列表中的元素
A.在列表中,可以通过 .append 方式增加元素到末尾位置。
B.通过 .insert() 方法增加元素并指定其在列表中的位置 list.insert(位置,’增加的元素’)
C.通过 .pop() 方法删除列表中的元素 列表.pop(),默认删除最后一个元素 由于 pop() 有返回值,因此可以采用赋值的方法,倒序删除
列表.pop(位置),删除指定位置元素
D.替换元素,可以直接将新元素赋值给指定位置
E.列表的扩展,将多个元素加入列表中 列表.extend([]) 列表的扩展应采用 变量“点” extend([]) 的方式,不要采用 + (连接操作符)的方式,会出现违规操作,因为 + 两边的元素必须一致。
F.列表页可以包含列表,要定位被包含列表中某一位置的元素,可以采取 列表[包含列表位置][被包含列表位置] 的方法 或 被包含列表[位置] 的方法
G.变量.remove(元素名称) 知道元素名称进行删除
H.delete 方法 del列表[元素位置] 或者 del空格列表赋值的变量,整个列表被删除 最后提示“没有这个列表”,表示删除成功
6.一个元素的列表,调用元素种类读取。
7.切片 为了一次性获取列表中更多的元素,可以采用 切片/分片/slice 的方法 A.切片,通过分号隔开索引值,复制列表。其中,冒号左边为开始(包含开始索引值),冒号右边为结束(不包含结束索引值)。
B.同理,可以在开始位置或是结束位置不填写索引值,则复制的列表包含开始/结束的位置;也可以只填写冒号,获取整个列表的复制。
C.切片是复制整个列表,所以适用于需要修改列表同时又要保留原列表的情况;赋值是元素值完全相同的两个列表。
8.列表比较大小 列表比较大小,是以索引值第 0 个位置的大小判定, 0 位置的索引值大,当前列表就大,反之亦然。
9.列表相乘,列表中元素数量增倍,但是数值不变。
10.成员关系操作符 通过 in 和 not in 确定成员关系
对于确定列表中的列表的成员关系,应当在一层列表中引入二层列表
11.列表内置函数(BIF)及部分常用内置函数(BIF) dir(list)
A.count():用于计算某元素在列表中出现的次数 列表.count(需要查询的元素)
count(sub[,start[,end]]),start 表示此位置之前的舍去(不含此位置),end 表示此位置之后的舍去(不含此位置)。
B.index():返回参数在列表中的位置。 列表.index(需要查询位置的元素) 如果一个列表中有多个相同的元素分布在不同的位置,Index默认只查找第一个元素的位置,可以划定位置范围查找其他相同元素(只找排列在最前面的)。 列表.index(需要查找位置的元素,查找起始位置,查找结束位置)
C.reverse():将整个列表原地反转,前后的值互相调换位置。 列表.reverse()
D.排序 sort():默认从小到大进行排队 列表.sort()
如果列表需要从大到小排序,可以先通过 sort 从小到大排序,再用 reverse 反转;另外还有一个方法是调用 sort 中的 reverse 参数 列表.sort(reverse = True) .sort(reverse) 中的 reverse 默认值是 False,所以要改为 True 。
二、元组(tuple) 1.新建一个元组,与字符串不同,元组内的元素要加上英文逗号。tuple 一旦初始化,元素指向不能改变。
2.tuple 陷阱: 当定义一个只有一个元素的 tuple,如果如下图定义,则定义的不是 tuple,只是一个数,这是因为括号()既可以表示 tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python 规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个英文逗号消除歧义。
3.“可变的”元组 例: tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的! 所以,如果需要建一个“不可变”的元组,那就需要元组内的每一个元素都是“不可变”的。
4.数字乘以元组,* 相当于重复操作符,不再有乘法意义。
5.删除元组 del元组
6.适用于元组的操作符 1.拼接操作符 2.重复操作符 3.关系操作符(>、<、 ==、!=) 4.逻辑操作符(and、or、not) 5.成员操作符(in、not in)
三、序列
1.列表、元组和字符串的共同点 A.都可以通过索引得到每一个元素; B.默认索引值总是从零开始; C.可以通过分片的方法得到一个范围内的元素的集合; D.共用重复操作符、拼接操作符、成员关系操作符。
2.生成空列表 >>> a = list() >>> a []
3.将字符串转换为单独列出的列表 b = 'Python' >>> b = list(b) >>> b ['P', 'y', 't', 'h', 'o', 'n']
4.将元组转换为列表 b = (1,2,3,4,5) >>> b = list(b) >>> b [1, 2, 3, 4, 5]
5.将列表转换为元组 b = [1,2,3,4,5] >>> b = tuple(b) >>> b (1, 2, 3, 4, 5)
6.max(sub) 返回序列或参数集合中的最大值(数据类型必须一致) >>> c = (11,23,56,3,789) >>> max(c) 789
7.min(sub) 返回序列或参数集合中的最大值(数据类型必须一致) >>> min(11,23,56,3,789) 3
8.sum(iterable[, start=0]) 返回序列 iterable 和可选参数 start 的总和(可以是数据类型(整数、浮点数),字符串不能实现此操作) A.sum(iterable) >>> d = (1,2,3,4,5) >>> sum(d) 15
B.sum(iterable,star) >>> d = (1,2,3,4,5) >>> sum(d) 15 >>> sum(d,15) 30
9.sorted() 默认由小到大排序 >>>c = (11,23,56,3,789) >>> sorted(c) [3, 11, 23, 56, 789]
10.reversed() 返回迭代器对象 ,如果将 reversed 表示的迭代器对象返回为列表,可以通过 list() 或是 tuple() 。 >>> c = (11,23,56,3,789) >>> reversed(c) <reversed object at 0x00000238FF8811D0> >>> list(reversed(c)) [789, 3, 56, 23, 11] >>> tuple(reversed(c)) (789, 3, 56, 23, 11)
11.enumerateenumerate() 枚举,生成由每个元素的 index(索引) 值和 item 值组成的元组。 >>> enumerate(d) <enumerate object at 0x00000238FF884EA0> >>> list(enumerate(d)) [(0, 1), (1, 22), (2, 345), (3, 43), (4, 576), (5, 60)] >>> tuple(enumerate(d)) ((0, 1), (1, 22), (2, 345), (3, 43), (4, 576), (5, 60))
元素前面都加了元 其所在列表的索引值
12.zip() 返回由各个参数的序列组成的集合。 A. >>> e = (11,23,41,36,77,90) >>> f = (43,76,45,22,11,489,123,65) >>> zip(e,f) <zip object at 0x00000238FF880F88> >>> list(zip(e,f)) [(11, 43), (23, 76), (41, 45), (36, 22), (77, 11), (90, 489)] >>> tuple(zip(e,f)) ((11, 43), (23, 76), (41, 45), (36, 22), (77, 11), (90, 489)) B. >>> e = [11,23,41,36,77,90] >>> f = [43,76,45,22,11,489,123,65] >>> zip(e,f) <zip object at 0x00000238FF888548> >>> list(zip(e,f)) [(11, 43), (23, 76), (41, 45), (36, 22), (77, 11), (90, 489)] >>> tuple(zip(e,f)) ((11, 43), (23, 76), (41, 45), (36, 22), (77, 11), (90, 489))
成对打包,元素相对多的集合,多出来的元素舍弃不要。
From:http://blog.csdn.net/komazhy/article/details/51911617
