每天分享10条,一起飞!
1、列表分片:
2、列表神奇的地方:
(1)比较大小:
(2)列表相加+:
(3)列表用乘法时,变成复合赋值:
(4)列表中in/not in的用法:
(5)列表分片"拷贝"的概念:
分片拷贝语法:列表名[:];
分片拷贝的本质:开辟一个新的内存空间;
备注:真正的拷贝是要使用分片的方法;
3、元组与列表之间的区别:
答:元组和列表最大的区别就是你可以任意修改列表中的元素,可以任意插入或者删除一个元素,而对元组是不行的,元组是不可改变(像字符串一样),所以你也别指望对元组进行原地排序等高级操作了。
备注:元组可以不用小括号来定义(list = 1,2,3,4)
4、利用字符串的拼接+来实现更新和删除:
5、用join来分隔字符串:
split()跟join()正好相反, split()用于拆分字符串:
replace()方法如其名,就是替换指定的字符串:
6、字符串的格式化:
(1)format()函数使用:
(2)格式化操作符:%
7、序列:
(1)list()、tuple()、str(obj);
(2)len();
(3)max()和min();
(4)sum()、sorted()和reversed();
(5)enumerate()和zip();
8、python函数:
(1)函数文档
(2)关键字参数:
(3)默认参数:这点跟PHP很像
(4)收集参数:这点很有趣,为懒人准备的
星号*其实即可以打包又可以'解包",假如你需要将一个列表a传入test参数的收集参数*params中,那么调用test(a)时便会出错,此时需要在a前边加上个星号(*)表示实参需要"解包"后才能使用:
(5)全局变量:
但不排除有些人还是坚持"虚心接受,死性不改"这八字原则,仍然觉得有必要在函数中去修改这个全局变量,那么你不妨可以使用global关键字来达到目的!
(6)内嵌函数:
(7)闭包:这个我个人觉得最有意思,有深度;
闭包是函数式编程的一个重要的语法结构,函数式编程是一种编程范式,著名的函数式编程语言就是LISP语言(大家可能听说过这门语言,主要应用于绘图和人工智能,一直被认为是天才程序员使用的语言)。
备注:闭包针对的是内部函数,所以不能在外部直接调内部函数;
(8)lambda表达式:又名匿名函数
(9)filter()和map():
filter()有两个参数。第一个参数可以是一个函数也可以是None,如果是一个函数的话,则将第二个可迭代数据里的每一个元素作为函数的参数进行计算,把返回True的值筛选出够;如果第一个参数为None,则直接将第二个参数中为True的值筛选出来,来,我们直接看个例子:
map在这里不是地图的意思,在编程领域,map一般作"映射"来解释。map()这个内置函数也有两个参数,仍然是一个函数和一个可迭代序列,将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕,返回所有加工后的元素构成的新序列。有了刚才filter()的经验,我们直接看代码:
(10)递归是"神马":
递归这个概念,是算法的范畴,本来不属于Python语言的语法内容,但每个编程语言系列教学里都要讲递归,那是因为如果你掌握了递归的方法和技巧,你会发现这是一个非常棒的编程思路!
说了那么多,在编程上,递归是什么这个概念还没讲呢!递归,从原理上来说就是函数调用自身这么一个行为,接下来我们来看个阶乘例子:
9、字典和集合:
(1)创建和访问字典:
字典是Python中唯一的映射类型,映射是数学上的一个术语,指两个元素集之间元素相互“对应”的关系。如图所示,映射图解;
通过{}来创建:
通过dict()来创建字典:
建议用{}来创建字典,看起来舒服;
(2)字典内置方法:
fromkeys()方法用于创建并返回一个新的字典,它有两个参数:第一个参数是字典的键;第二个参数是可选的,是传入键对应的值。如果不提供,那么默认是None,举个例子:
这个例子告诉我们做事不能总是想当然,有时候现实会给你狠狠的一棒,fromkeys()方法并不会将值"one"、"two"和"three"分别赋值键1、2和3,因为fromkeys()把("one","two","three")当成一个值了。
----------------------------------------------------------------------------------------------------------
key()、values()和items():
keys()用于返回字典中的键,values()用于返回字典中所有的值,那么items()当然就是返回字典中所有的键值对(也就是项),举个例子:
----------------------------------------------------------------------------------------------------------
get()、in和not in:
get()方法提供了更宽松的方式去访问字典项,当键不存在的时候,get()方法并不会报错,只是默默地返回了一个None,表示啥都没找到;如果希望找不到数据时返回指定的值,那么可以在第二个参数设置对应的默认返回值;
如果不知道一个键是否在字典中,那么可以使用成员资格操作符(in或not in)来判断;
----------------------------------------------------------------------------------------------------------
clear()清空一个指定的字典:
可能有同学会认为使用变量名赋值为一个空字典的方法来清空字典,这样做存在一定的弊端,我们来看个例子;
-------------------------------------------------------------------------------------------------------
copy()方法是复制字典:
-------------------------------------------------------------------------------------------------------
pop()和popitem()方法:
pop()是给定键弹出对应的值,而popitem()是弹出一个项,这两个比较容易:
setdefault()方法和get()方法有点相似,但是setdefault()在字典中找不到相应的键时会自动添加:
-------------------------------------------------------------------------------------------------------
update()方法用来更新字典:(其实上面也是有方法的,只是这个更正宗)
10、集合:
在Python3里,如果用大括号括起一堆数字但没有体现映射关系,那么Python就会认为这堆玩意儿就是个集合。
由于集合中的元素是无序的,所以并不能像序列那样用下标来进行访问,但是可以使用迭代把集合中的数据一个个读取出来:(add()和remove()方法)
有些时候希望集合中的数据具有稳定性,也就是说,像元组一样不能随意地增加或删除集合中的元素。那么我们可以定义不可变集合,这里使用的是frozenset()函数,没错,就是把元素给frozen(冰冻)起来:
以上是深入浅出解析Python基础语法的详细内容。更多信息请关注PHP中文网其他相关文章!