Python数据类型之列表
List(列表)是Python中使用最频繁的数据类型。
列表可以完成大多数数据集合类的数据结构实现。它支持字符,数字,字符串甚至还可以嵌套列表、元组。
列表用方括号[]标示,内部元素间用逗号隔开。列表也是序列,所以列表分隔就可以使用之前讲的序列的索引和切片来实现,这里就不多讲了。下面讲一下list特有的一些东西吧
***定义一个空列表*** >>>list = [] >>>list [] ***非空list的定义*** >>> list = [1,2,5,7,'a','b']
>>> list1 = [[1,2],['a',2],'dsdf',(1,'df',4.3),5.4] >>> list1 [[1, 2], ['a', 2], 'dsdf', (1, 'df', 4.3), 5.4]
***得到列表中某个值*** >>>list[2] 5
***修改列表中某个元素*** >>>list[3] = 'new' >>>list >>>[1,2,5,'new',"a","b"]
***普通列表的遍历,嵌套列表的遍历详见《Python中嵌套list的遍历》*** >>>for i in list: ... print i, ... 25 7 a b 8
***list非引用的复制*** >>> list_a = [1,3,4,5] 将list_a非引用的复制给list_b >>> list_b = list_a[:] >>> list_b [1, 3, 4, 5] >>> id(list_a) 39444688 >>> id(list_b) 39444768 >>> list_b[1] = 888 >>> list_b [1, 888, 4, 5] >>> list_a [1, 3, 4, 5] 从上面的操作结果可以看出,这种复制以后,list_a和list_b是相互独立、互不影响的,他们指向不同的内存空间,所以对任何一个list进行修改等操作都不会影响另一个list。
************list操作函数和方法***********
***得到列表的长度*** >>>len(list) 6
***将字符序列、元组序列转换成list*** >>> str1 = "abcdf12" >>> tup1 = (4,3,'a','c') >>> list(str1) ['a', 'b', 'c', 'd', 'f', '1', '2'] >>> list(tup1) [4, 3, 'a', 'c']
***在列表末尾追加一个值*** >>>list.append(8) >>>list [1,2, 5, 7, 'a', 'b', 8]
***删除列表中某个值*** >>>del list[0] >>>list [2,5, 7, 'a', 'b', 8]
***生成一个数值递增列表*** >>>list1 = range(5) >>>list1 [0,1, 2, 3, 4] >>>list2 = range(1,10,2) >>>list2 [1,3, 5, 7, 9] >>>list2 = range(2,10,2) >>>list2 [2, 4, 6, 8]
***在下标为1的位置插入一个值*** >>>list.insert(1,21) >>>list [2,21, 5, 7, 'a', 'b', 8]
***返回最后一个元素,并将其从列表中删除*** >>>list.pop() 8 >>>list [2,21, 5, 7, 'a', 'b'] >>>list.append(2) >>>list [2,21, 5, 7, 'a', 'b', 2]
***删除第一次出现的元素2*** >>>list.remove(2) >>>list [21,5, 7, 'a', 'b', 2]
***统计某个元素在列表中出现的次数*** >>>list.count(2) 1
***获得"a"元素的位置,如果没有就会抛出异常*** >>>list.index("a") 3
***将list2合并到list上*** >>>list.extend(list2) >>>list [21,5, 7, 'a', 'b', 2, 1, 3, 5, 7, 9]
***列表翻转,即倒序*** >>>list.reverse() >>>list [9,7, 5, 3, 1, 2, 'b', 'a', 7, 5, 21]
***列表排序,是根据ASCII码从小到大进行排序*** >>>list.sort() >>>list [1,2, 3, 5, 5, 7, 7, 9, 21, 'a', 'b']
***给list指定一个别名,用id()函数查看一下它们的内存地址,发现是指向同一内存空间,即对list3操作就是对list的操作。*** >>>list3 = list >>>list3 [1,2, 3, 5, 5, 7, 7, 9, 21, 'a', 'b'] >>>id(list) 39343328 >>>id(list3) 39343328
***比较两list的大小,等返回0,大返回1,小返回-1(以ASCII码值为比较依据,一位一位的进行比较)*** >>>cmp(list,list3) 0
***返回列表中最大值或最小值*** >>> list1 = [[1,2],['a',2],'dsdf',(1,'df',4.3),5.4] >>> max(list1) (1, 'df', 4.3) >>> min(list1) 5.4