python数据结构总结
一、列表
list = ['a','b']
1、列表脚本操作符:
(1)扩增的操作符:
“+”:用于组合列表;如[1,2,3]+[4,5,6]==>[1,2,3,4,5,6]
"*":重复;如[2,3]*2==>[2,3,2,3]
2、列表函数
cmp(list1,list2):比较两个列表的元素;当list1<list2时,返回-1;当list1>list2时,返回1;当list1=list2时,返回0;
len(list):返回列表元素个数;
max(list):返回列表元素最大值;
min(list):返回列表元素最小值;
3、列表方法
(1)扩增的方法:
list.append(obj.):在列表的末尾添加新对象;
list.extend(seq):在列表的末尾一次性追加另一个序列的多个值(1、seq为列表和元组时,将列表和元组的所有元素添加;2、seq为字典时,将字典所有的key添加;)
list.insert(index,obj):将对象添加进对应的索引位置中;
(2)删除元素:
list.pop([obj=list[-1]]):默认删除list中最后一个元素,并且返回该元素值;list.pop(1)表示删除list中倒数第二个元素;
list.remove(obj):删除list中某个值的第一个匹配项;
(3)统计元素在list中出现的次数:list.count(obj)
(4)反向列表元素:list.reverse()
(5)对原列表排序:list.sort([func])
4、访问列表的值:
list[index]:访问索引指向的值,从0开始;
list[-1]:访问倒数第一个元素;
list[1:3]:访问第2个元素到第3个元素,索引为3的元素不访问;
list[1:]:访问第2个元素到最后一个元素。
5、其它:
删除元素语句:del list[index]
更新元素值:list[1]=3; ===>直接将索引为1的元素值改为“3”
判断是否存在元素值:3 in [1,2,3]==>返回True
二、元组
tuple = ('a','b')
1、操作符和访问值:与列表类似
2、创建:当只有一个元素时,元素后面需要加上逗号,如tuple=(1,)
3、元组中的元素值不允许修改;
4、元组中的元素值不允许删除;可以使用del语句删除整个元组;
5、元组函数
(1)cmp(tuple1,tuple2):与list类似
(2)len(tuple):元组元素个数
(3)max(tuple)
(4)min(tuple)
(5)tuple(seq):将列表转换为元组
三、字典
键与值:(1)键必须是唯一的,但值可以不是;(2)键必须是不可变的,但值可以是任意数据类型;
dict1 = {'a':1,'b':'bs'}
1、访问值:
(1)直接访问,把键放在方括号中访问:dict['keyname']
(2)dict.values():以列表返回字典中所有值;
(3)dict.keys():以列表返回字典中所有键;
(4)dict.get(key,default=None):返回指定键的值,如果键不存在,则返回默认值;
(5)dict.setdefault(key,default=None):返回指定键的值,如果键不存在,则会添加键,键的值为默认值;
2、修改值:
(1)直接修改键值:dict['key']=new_values;
3、扩增:
(1)直接新增键/值对:dictname['new_keys']=new_value;
(2)dict.update(dict2):把字典dict2的键/值对更新到dict中;
(3)dict.fromkeys(seq[,values]):创建一个新字典,以seq中的值为字典的键,values为字典的值;
4、删除字典元素:
(1)删除键/值对:del dictname['keyname']
(2)删除键内所有键/值对:dictname.clear()
(3)删除字典:del dictname
5、其它:
(1)len(dictname):字典元素个数,即键的总数;
(2)dict.items():以列表返回可遍历的(键,值)元组数组
(3)dict.has_key('keyname'):判断键是否存在字典中
四、set集合
与列表的行为类似,但是set是无序的、不包含重复值;
1、创建集合:
s1 = {'a','b','c'} --注意,不能用s1 = {}创建集合,这种操作创建的是空字典
s2 =set(['a','d','a'])
2、集合交集:
找出两个集合中都有的数据
print(s2.intersection(s1)) ---{'a'}
3、集合差集:
找出不存在于另一个集合的数据
print(s2.difference(s1)) ---{'d'}
4、并集
temp = s1.union(s2) #取并集,并赋新值
5、增加
s1.update(s2) #{'a','b','c','d'}