使用filter来实现,以python3为例,如果删除列表中的所有0,则可使用下面代码实现:
a = [1,2,0,3,4,0,5,0,6]b = filter(lambda x: x != 0, a)
list(b)
效果如下:
注:如果使用python2则直接输出b即可,在python3中filter返回结果为可迭代的对象,需使用list转换成列表。
lambda创建一个匿名函数。冒号前面是传入参数,后面是一个处理传入参数的单行表达式。
调用lambda函数返回表达式的结果。
list的sort
同于内建函数sorted。它有三个参数cmp,key,reverse,均有默认值。
cmp是一个比较器,自定义比较器的话传入两个参数x,y,返回值限制为1(x>y),
0(x=y),
-1(x<y)。默认是常规比较,数字比较,字符串比较等等。
key是对序列元素处理(比如问题中序列元素仍是序列,就可以再对序列取索引值),也就是sort的比较器实际接收到值是key处理后的结果(问题中实际参与比较的是1,2,3,4)。
reverse默认是False,意思是从小到大排序,传入True,就从大到小排。
python使数组中的元素不重复的方法:
python字典的键都是唯一的,可以用python字典的fromkeys()方法去除列表里面重复的元素,然后用list对象将字典的key转换成列表,最后输出这个列表就可以了
示例代码如下:
执行结果如下:
更多Python知识,请关注:Python自学网!!