python的三大基本数据结构(转载)
转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx
一、列表
一组有序项目的集合。可变的数据类型【可进行增删改查】
列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔。
列表中可以包含任何数据类型,也可包含另一个列表
列表可通过序号访问其中成员
常用列表操作:
list.append()追加成员,成员数据
list.pop()删除成员,删除第i个成员
list.count(x)计算列表中参数x出现的次数
list.remove()删除列表中的成员,直接删除成员i
list.extend(L)向列表中追加另一个列表L
list.reverse()将列表中成员的顺序颠倒
list.index(x)获得参数x在列表中的位置
list.sort()将列表中的成员排序
list.insert()向列表中插入数据insert(a,b)向列表中插入数据
可通过
>>>help(list) 查看方法详情
print("-------list operations------") #列表操作 l = [1,2,3,4,5] l2 = [7,8,9] print(l) #获得列表长度 length = len(l) print(length) #追加一个元素,在列表最后一位 l.append(6) print(l) #向列表中追加另一个列表 l.extend(l2) print(l) #插入一个元素,在位置a l.insert(0,0) print(l) #将列表顺序颠倒 l.reverse() print(l) #排序,从小到大 l.sort() print(l) #统计某个元素出现的次数 c = l.count(0) print(c) #查找某个参数在列表中的位置,未命中则抛异常 i = l.index(1) print(i) #删除某个位置的成员 l.pop(0) print(l) l.append(1) #直接删除某个值的成员,若有多个,删除第一个 l.remove(1) print(l)#列表操作补充--切片操作 example = [0,1,2,3,4,5,6,7,8,9] #打印某一区间 左闭右开 print(example[4:8]) #想包含最后一个 print(example[4:]) #包含首个 print(example[:8]) #所有的 print(example[:]) #第三个参数为步长 print(example[1:8:2]) #倒序输出 print(example[::-1]) #列表合并 a = [1,2,3] b = [4,5,6] print(a+b) #替换 ex = [1,2,3,4,5,6] ex[4:]=[9,8,7] print(ex)#将56换为987 #插入 ex[1:1] = [0,0,0] print(ex) #删除 del ex[0:2] print(ex) #或者 ex[6:]=[] print(ex) #比较 one = [1,2,3] two = [1,2,3] print(one == two)#true print(one is two)#false #列表操作补充——字符串也是列表 str = "abcdefg" print(str[0]) #将一个字符串转为字符数组 print(list(str)) #字符串 s = "abcdefg" #判断是否包含 print('a' in s) #函数和模块 import math #将一个变量指向一个函数 se = math.sqrt print(se(81))二、元组
不可变序列
元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔
与列表不同:元组中数据一旦确立就不能改变
通过下标进行访问
声明:
L=(1,2,3)
含0个元素的元组: L = ()
含1个元素的元组:L=(1,) 注意有逗号
#元组操作 #声明 o =('a','b','c',('d1','d2')) o1 = () o2 = (1,) #访问 print(o[0]) print(o[3][0]) #用于打印语句 age = 22 name = 'tom' print("%s is %d years old"%(name,age))三、字典
键值对的集合(map)
字典是以大括号“{}”包围的数据集合
与列表区别:字典是无序的,在字典中通过键来访问成员。
字典是可变的,可以包含任何其他类型
声明:
M={k1:v1,k2:v2}
访问 M[k1]将得到v1
常用字典操作:
dic.clear()清空字典
dic.keys()获得键的列表
dic.values()获得值的列表
dic.copy()复制字典
dic.pop(k)删除键k
dic.get(k)获得键k的值
dic.update()更新成员,若成员不存在,相当于加入
dic.items()获得由键和值组成的列表
dic.popitem
可以通过
>>>help(dict) 查看详情
#字典操作 m = {'a':1,'b':2,'c':3} print(m) #读取某一个_通过key print(m['a']) #读取某一个,通过get方法 print(m.get('b')) #复制字典 m2 = m.copy() print(m2) #获取所有键的列表 print( m.keys() ) #获取所有值的列表 print( m.values() ) #获取所有键值对元组组成的列表 print( m.items() ) #更新成员,当对应键值不存在时,相当于加入 m.update({'d':4}) print(m) #删除某个成员 m.pop('a') print(m)
四、序列的索引和切片
列表、元组和字符串都是序列
序列的两个主要特点是索引操作符和切片操作符。
索引操作符让我们可以从序列中抓取一个特定项目。即下标操作,用方括号和数字抓取某个位置的项目,L[0]抓取第一个元素,L[-1]抓取最后一个元素
切片操作符让我们能够获取序列的一个切片,即一部分序列。方括号加一对可选数字,切出某个子片L[1:3] 返回1-2的子片,L[2:]从2开始到最后,L[:]整个