【Python】笔记9(filter、sorted)
filter(①,②),同map(),①②分别接收的是函数和序列,filter通过①的函数来对序列中的每一个元素作用得到返回值,再根据这个返回值是T还是F来取舍元素。
如例子中的n%2==1,如果这个等号成立,返回值就是T,否则就是F。
.strip(),可以将字符串中首尾的空格全部删除。
例子中,把一个空字符串删除的是,return s and s.strip(),通过判断s本身或s.strip()来判断真假,可见空值:'',None都是F的。
获取素数,读代码:首先获取一个从3开始的奇数序列,(因为偶数都是可以被2整除的),这个函数是一个生成器,显然n不是一个空值的时候是T的; 第二步,筛选掉可以被(上一次筛选所得序列中的)n整除的数,这里的lambda返回的是一个函数,x是它的自变量; 第三步加上一个首位2,第三步在把第二步返回的一个函数放入filter中,不断更新序列,往上筛除(中间的while相当于循环)。
回数,代码步骤:第一步先用str()将数据转化为字符串,然后判断str(n)==str(n)[::-1],([::-1]指切片,将str倒置);第二步,用直接用这一函数放入fliter。
————————————
sorted(①,②,③),是排序函数。
①放入的是一个Iterable,数值元素按照数学意义上的排序②可有可无,通过key=某函数,来排序,如key=abs,①中放入的list中的元素将按照取绝对值后来排序。
①中放入的若是字符串Iterable,则按照ASCII码来排序;②可以传入key=str.lower,来忽略字母大小写,进行排序
③中放入的参数是reserve=True,实现反向排序。
名字成绩排序,要先分别写一个提取list中t的前后两个元素的函数。