04_Python Data Structures
Python数据结构
数据结构:数据个体的存储 和 数据个体与个体之间关系的存储。
Python中有:1.序列 2.映射类型 3.无序集合
序列:成员有序排列、通过下标偏移量进行访问。元组、字符串、列表。
映射:依据键索引。字典。
集合:无序,没有索引,所以只能增、删、查(For遍历),没有删除某个元素的方法。
python中的数据结构:元组(Tuple)、列表(Lists)、字典(Dictionariy)、集(Set)
一、元组
元组与列表类似,不同的是元组是不可更改类型,但是元组中的列表,字典可更改。意味着不能进行增、删、改、查、排序、倒置等,Python源码中Tuple支持的操作。
# count 统计某个元素出现的次数 def count(self, value): # real signature unknown; restored from __doc__ """ T.count(value) -> integer -- return number of occurrences of value """ return 0 #获取某个值所在位置,start stop 表示可以切片 def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__ """ T.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present. """ return 0 #获取长度的方法。公共方法,list dict str都可以使用 def len(*args, **kwargs): # real signature unknown """ Return the number of items in a container. """ pass
1.1元组 常用操作
#1. 元组拼接 tu = (1,2,3,4,5,6,7,1) tu1 = tu[0:4] # 元组切出来的还是元组 tu2 = tu[4:] tu3 = tu1 + tu2 print(tu1) #2. 获取元组长度 print(len(tu)) #8 #3. 获取元组中 1 出现的次数 print(tu.count(1)) # 2 #4. 返回 4 的索引 print(tu.index(4)) #3 #5.删除 元组 del tu print(tu) # NameError
1.2列表
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:
li = ['a',[1,2,'a'],True,('a','n','m'),{'键':'值'}]
1.2.1列表的操作
1 li = ['a',[1,2,'a'],True,('a','n','m'),{'键':'值'}] 2 3 #1.增 4 li.append('Python') #尾部添加 5 li.extend("123") #迭代添加 6 li[5] = 'append' # 索引加载 7 8 #2.插入 任意位置插入 9 li.insert(0,'Study') 10 11 #3.删 12 #3.1 按索引删 -> 返回被删除元素 13 ret = li.pop(-1) 14 print(ret) 15 16 #3.2 按元素删 -> 没有返回值 17 print(li) 18 li.remove('a') 19 print(li) 20 #3.3 清空链表 21 li.clear() 22 print(li) 23 #3.4 删除链表 24 del li 25 #4.5切片删 26 del li[0:] #类似clear()函数 27 28 29 #4.改 30 #4.1 索引改 31 li[0] = 'One' 32 print(li) 33 34 #4.2 35 li[0:2] = 'python' #它会把0:2先删除,然后python 一个一个的拆开插入 36 print(li) 37 38 #5.查 39 #5.1 遍历 40 for i in li: 41 print(i) 42 #5.2 切片 43 li[0:] 44 45 #6.遍历 46 # for i in li: 47 # print(i) 48 li = [1,2,5,3,6,4,7,12,9,8,11,10] 49 #7.排序 50 print(li) 51 li.sort()#没有返回值,只能操作完,打印 52 print(li) 53 #8.倒置 54 li.reverse() 55 print(li)
1.3字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
dic = {'name':'Python','version':3.6,'code':3} #增 ''' 1.dic[key] 如果有相同的key,直接覆盖,否则,添加到尾部 2.dic.setdefault()如果key在字典中,则返回其值。如果没有,则插入值为default的key,并返回default。default默认为None。 ''' #dic['RuntimePlatform'] = 'Win10' {'name': 'Python', 'version': 3.6, 'code': 3, 'RuntimePlatform': 'Win10'} #dic.setdefault('ChName','派森') {'name': 'Python', 'version': 3.6, 'code': 3, 'ChName': '派森'} #删 ''' 1.dic.pop('key') 删除一个键值对,返回被删除的值 2.dic.pop('key','提示信息') 删除一个key,如果key不存在,返回提示信息 3.clear() 清空dic 4.del 删除链表 5.del dic['key'] 删除一个键值对,不返回任何信息;如果值不存在,则会引发KeyError异常 ''' dic.setdefault('ChName','派森') #print(dic) #dic.pop('ChName1') 如果没有第二个参数,会报KeyError #print(dic.pop('ChNames','没有此键')) #del dic # NameError #del dic['ChName1'] KeyError #dic.clear() {} 清空字典 #随机删除 #dic.popitem() 默认删除最后一个 #改 ''' 1.dic[] 2.dic.update({}) 迭代更新,如果key存在,覆盖;不存在添加 ''' #dic['ChName'] = 'paisen' 如果存在就覆盖 dic.update() print(dic) #查 ''' 1.dic['key'] 2.for 循环 3.get() 如果key不存在,返回None 4.get('key','提示信息') 如果key不存在,返回提示信息 ''' for k,v in dic.items() : print(k,v) print(dic.get('name')) print(dic.get('Platform','没有此键')) #遍历 ''' 1.获取所有的键值对 2.获取所有的键 3.获取所有的值 ''' print(dic.items()) print(dic.keys()) print(dic.values()) for k,v in dic.items(): print(k,v) for k in dic: print(k,dic[k])
二、Python中数据结构-公共函数和遍历总结
公共方法
def insert(self, index, p_object): # real signature unknown; restored from __doc__ """ L.insert(index, object) -- insert object before index """ pass def clear(self): # real signature unknown; restored from __doc__ """ L.clear() -> None -- remove all items from L """ pass def count(self, value): # real signature unknown; restored from __doc__ """ L.count(value) -> integer -- return number of occurrences of value """ return 0 def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__ """ L.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present. """ return 0 del
in ; not in
切片
遍历
1 while i < len(obj): 2 print(obj[i]) 3 4 5 6 for i in iterable: 7 print(i)