1.三元运算符
exp1 if contion else exp2
如果contion成立,则整个取exp1表达式,否则取exp2
max = a if a>b else b
2.匿名函数与内置函数
匿名函数 lambda
lambda 参数列表:return值
与内置函数一起使用
1.与max一起使用
# 比较字典中值的大小,并返回key的值
a={'tom':22,'boy':4,'coco':33,'dog':18}
print(max(a,key=lambda name:a[name]))
或者
print(sorted(a,key=lambda name:a[name],reverse=True)[0])
3.python关键字
and, del, from, not, while, as, elif, global, or, with, assert, else, if, pass, yield, break, except, import, print, class, exec, in, raise, contiue, finally, is, return, def, for, lambda, try
4.赋值、浅拷贝、深拷贝
赋值实际是引用,并没有产生新的对象。
浅拷贝和深拷贝都拷贝出来一个与原对象地址不同的新对象。
但是浅拷贝的新对象里面的可变元素(如列表)的地址和原对象里的可变元素的地址是相同的,浅拷贝中得不可变元素与原来的地址不同,所以在新对象或原对象里对这个可变元素做修改时,两个对象是同时改变的。
什么是可变对象,什么是不可变对象:
可变对象是指,一个对象在不改变其所指向的地址的前提下,可以修改其所指向的地址中的值;(如字典、列表)
不可变对象是指,一个对象所指向的地址上值是不能修改的,如果你修改了这个对象的值,那么它指向的地址就改变了,相当于你把这个对象指向的值复制出来一份,然后做了修改后存到另一个地址上了,但是可变对象就不会做这样的动作,而是直接在对象所指的地址上把值给改变了,而这个对象依然指向这个地址。(如int,float,complex,long,str,unicode,tuple等)