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'
LeetCode刷题预备知识(二)的更多相关文章
- leetcode刷题-74搜索二维矩阵
题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列.每行的第一个整数大于前一行的最后一个整数.示例 1: 输入:matrix ...
- LeetCode刷题--基础知识篇--KMP算法
KMP算法 关于字符串匹配的算法,最知名的莫过于KMP算法了,尽管我们日常搬砖几乎不可能去亲手实现一个KMP算法,但作为一种算法学习的锻炼也是很好的,所以记录一下. KMP算法是根据三位作者(D.E. ...
- C#LeetCode刷题-二叉搜索树
二叉搜索树篇 # 题名 刷题 通过率 难度 220 存在重复元素 III 19.3% 中等 315 计算右侧小于当前元素的个数 31.9% 困难 327 区间和的个数 29.5% 困难 3 ...
- LeetCode刷题总结-数组篇(上)
数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...
- LeetCode刷题总结-数组篇(下)
本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...
- 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode 算法题
大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode ...
- LeetCode刷题总结-数组篇(中)
本文接着上一篇文章<LeetCode刷题总结-数组篇(上)>,继续讲第二个常考问题:矩阵问题. 矩阵也可以称为二维数组.在LeetCode相关习题中,作者总结发现主要考点有:矩阵元素的遍历 ...
- LeetCode刷题总结-树篇(中)
本篇接着<LeetCode刷题总结-树篇(上)>,讲解有关树的类型相关考点的习题,本期共收录17道题,1道简单题,10道中等题,6道困难题. 在LeetCode题库中,考察到的不同种类的树 ...
- LeetCode刷题总结-树篇(上)
引子:刷题的过程可能是枯燥的,但程序员们的日常确不乏趣味.分享一则LeetCode上名为<打家劫舍 |||>题目的评论: 如有兴趣可以从此题为起点,去LeetCode开启刷题之 ...
随机推荐
- Java内存分析工具--IDEA的JProfiler和JMeter插件
一.JProfiler简介 JProfiler 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的.它把CPU.执行绪和内存的剖析组合在一个强大的 ...
- H3C OSPF协议区域LSA发布
- svn 冲突解决办法(黄色感叹号)
右键:"TortoiseSVN"->"Resolved..."已解决的..., 选中全部的文件,然后OK,,然后就可以commit提交了.
- js基础-原型
1.定义:我们创建的函数都有一个prototype(原型)属性,该属性是一个对象, 原型模式声明中多了两个属性(自动生成). 构造函数: function Box(nam ...
- Python--day32--struct模块定制报头理论(什么是网络协议?网络协议的本质是什么?)
- Bishops Alliance—— 最大上升子序列
原题链接:http://codeforces.com/gym/101147/problem/F 题意:n*n的棋盘,给m个主教的坐标及其私有距离p,以及常数C,求位于同一对角线上满足条件:dist(i ...
- 【hdu 1112】The Proper Key
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...
- P1082 数列分段
题目描述 对于给定的一个长度为 \(N\) 的正整数数列 \(A_i\) ,现要将其分成连续的若干段,并且每段和不超过 \(M\) (可以等于 \(M\) ),问最少能将其分成多少段使得满足要求. 输 ...
- H3C 端口绑定基本配置
- react + webpack 多页面搭建
一.利用 creat-react-app 新建一个react单页面应用. cnpm i -g create-react-app create-react-app demo cd demo npm st ...