LeetCode刷题预备知识(二)
Python四大数据结构的属性及方法
在LeetCode刷题预备知识一中我们掌握了常见的内置函数,和四大数据结构的基本概念;
但只掌握这些还远远不够,我们还需了解四大数据结构的属性及方法才能更高效快速的解决问题
通过dir()函数可以查看各数据结构的属性及方法
一、列表list的属性及方法
>>dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
其中'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'为常用的方法
1.list.append(obj)——在列表末尾添加新元素,返回值:无。
2.list.count(obj)——统计某个元素(列表中的值)在列表中出现的次数,返回值:返回该次数。
3.list.extend(seq)——在列表后面一次性添加多个值(类似append直接改变该列表),seq必须是列表或者range(),返回值:无。
4.list.index(obj)——找出第一个匹配到参数obj(值)的索引,返回值:返回索引值。
5.list.insert(index,obj)——将值(obj)插入到指定索引(index),返回值:无。
6.list.pop(obj=list[-1])——删除列表中的元素(默认删除最后项),返回值:返回该删除项的值。
7.list.remove(obj)——删除第一个值为obj的匹配项,返回值:无。
8.list.reverse()——列表反向排序,无参数,无返回值。
9.list.sort([func])——对列表进行排序,根据字母和数字由小到大,列表数据类型要一致(同数字或同字符串),func为指定方法(可选参数)
10.list.clear()——清空列表,类似于del a[:],返回值:无。
11.list.copy()——复制列表并返回,返回值:被复制的列表。
二、元组tuple的属性及方法
>>dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
其中'count', 'index'为常用的方法
1.tuple.index(obj)——元组中找出某个值第一个匹配项的索引值
2.tuple.count(obj)—— 统计某个元素在元组中出现的次数
三、字典dict的属性及方法
>>dir(dict)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
其中'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'为常用的方法
1.dict.clear()——清除字典内容,返回一个空字典
2.dict.copy()——返回字典的浅拷贝
3.dict.fromkeys()——创建一个新字典,以可迭代对象iterable中元素做字典的键,value 为字典所有键对应的初始值,默认值为None。
4.dict.get(k,value)——若k(键值)不在字典中,则返回自定义的value值;若k(键值)在dict中,返回dict[k],value默认值为None.
5.dict.items()——返回字典d中所有键值对
6.dict.keys()——返回字典d中所有键的信息。
7.dict.pop(k,value)——键存在则返回相应的值,同时删除该键值对,否者返回默认值。
8.dict.popitem()——随机从字典中取出一个键值对,并以元组(key,value)的形式返回,同时将该键值对从字典中删除。若字典为空,则引发KeyError。
9.dict.setdefault(k,value)——如果字典存在键k,则返回dict[k],否者返回value,并将dict[k]的值设为value,且将该键值对(k,value)保存在字典中。
10.dict.update(a)——将a中的所有对象添加到字典中
11.dict.values()——返回字典d中所有值的信息。
四、集合set的属性及方法
>>dir(set)
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
其中比较常用的方法是'add', 'clear', 'copy','pop', 'remove','union', 'update'