数据结构:数据结构是计算机存储数据和组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。在python中主要的数据类型统称为容器。
而序列(如列表、元组)、映射(如字典)、集合(set)就是python中最主要的容器。
一. 序列:成员有序的排列,并且可以通过下标和偏移量访问到他的一个或几个成员的类型统称为序列。他是最基本的数据类型。Python中内建的序列有6种:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。下面重点介绍列表和元组。
- 列表:是储存和处理一组有序项目的数据结构。
特点:①有序排列
②可以改变的。这是它区别于字符串和元组的最重要的特点
表达式:方括号[ ],每项用逗号(,)隔开。
常用的函数方法:举例:name =["a","b","c"]
(1)打印列表中的元素c。print(name[2])
(2)打印列表中的元素b,c。print(name[1:3])
(3)打印列表中的最后一个项目。print(name[-1])
(4)打印列表中的最后两个项目。print(name[-2:])
(5)添加。name.append("d) ,只能在列表中添加一个元素且只能添加在末尾。
name.extend("d) ,可以在列表中添加多个元素或列表、元组、且只能添加在末尾。注意最后形成的还是列表。
1 a = [1, 2, 23, 4] 2 b = (5, 6, 7, 8, 9) 3 c=a.extend(b) #不能这样写,应该这样写a.extend(b)>>>print(a) 4 print(c)
name.insert(index,obj), index 想插入的索引号,新的元素将成为该索引号上的元素。obj想要插入的元素。
(6)替换。 name[1]="x"
(7)删除。有三种方法:① del name[1]
② name.remove("b”) #如果多个元素一样,默认删除第一个
③ name.pop(2) #函数用于移除列表中的一个元素(如果括号里没有数字则默认最后一个元素),并且返回该元素的值。
(8)查找。name.index("a") #显示a的索引号。
(9)统计。name.count("a") #显示列表里有几个a。
(10)清除列表。name.clear()
(11)翻转列表。name.reverse()。
(12)列表排序(按ASCII码排序)。name.sort()。
(13)复制。Python中的复制其实有三种形式。①赋值。python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用。原始列表改变,被赋值的b也会做相同的改变。例如a=1 b=a a=2>>> b=2.
②浅复制。copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变。
③ 深复制。只复制原始对象,不管原始对象如何改动,它都只复制原始对象。特别的忠诚。
1 import copy 2 a=[1,2,3,4,["a","b",["x","z"]]] #原始对象 3 b=a #赋值 4 c=copy.copy(a) #浅复制 5 d=copy.deepcopy(a) #深复制 6 a.append("A") #第一层变动 7 a[4][2].append("C")#第三层变动 8 print("a=",a) 9 print("b=",b) 10 print("c=",c) 11 print("d=",d)
得到的结果为:
a= [1, 2, 3, 4, [‘a‘, ‘b‘, [‘x‘, ‘z‘, ‘C‘]], ‘A‘] b= [1, 2, 3, 4, [‘a‘, ‘b‘, [‘x‘, ‘z‘, ‘C‘]], ‘A‘] c= [1, 2, 3, 4, [‘a‘, ‘b‘, [‘x‘, ‘z‘, ‘C‘]]] #只忠诚原始对象的第一层 d= [1, 2, 3, 4, [‘a‘, ‘b‘, [‘x‘, ‘z‘]]] #只忠诚原始对象