列表推导式
列表推导式(又称列表解析式),可以便捷
生成指定条件
的列表格式如:
[out_exp for out_exp in input_list if out_exp == 2]
假如有个列表tmp_list = [1,2,3,4,5,6],如果我们想过滤出其中大于3的元素,然后各自乘以2,生成一个新的列表,我们可以如下面这般实现:
[x * 2 for x in tmp_list if x > 3]
map 函数
map函数会将一个函数映射到一个输入列表的所有元素上。
格式:
map(func, *iterables)
假设我们需要将一个列表中的每个元素都乘以2,获得一个新的列表,则我们可以如下面这般实现。
list(map(lambda x:x*2,tmp_list))
map函数,会逐一将可迭代对象的每个元素作为func函数的入参,进行计算后,返回一个map对象。
filter 函数
filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表
格式:
filter(func or None, iterable)
假设,我们需要过滤一个列表,过滤出大于3的元素,则我们可以如下这般实现:
list(filter(lambda x:x>3,tmp_list))
filter函数,会逐一将可迭代对象的每个元素作为func函数的入参,进行计算后,返回一个filter对象。
sorted 函数
sorted函数 对一个可迭代的对象进行排序操作,返回一个新的列表。可以自定义排序的方法,默认是升序,但是也可以指定为降序。
格式如:
sorted(iterable, ,key=None, reverse=False)
参数key函数用于指定用于比较的对象,key函数的参数就是取自于可迭代对象(iterable)中的 一个 元素来进行排序。注意,key函数只接受一个入参。
例如有四个学生,格式如(“姓名”,”年龄”,”成绩”),根据不同的条件进行排序,如下
student_list = [('a',18,90),('c',20,99),('b',19,80),('d',15,100)] # 根据年龄进行排序 sort_by_age = sorted(student_list,key=lambda student:student[1])
假设有个学生类,创建出三个学生对象,每个对象有属性“姓名”,“年龄”,“成绩”。如下
class Student(object): def __init__(self, name, age, score): self.name = name self.age = int(age) self.score = float(score) s1 = Student("Milton", 31, 80) s2 = Student("Cherish", 32, 100) s3 = Student("Evan", 27, 90) stu_list = [s1, s2, s3]
# 根据成绩降序排序 sort_by_score = sorted(stu_list, key=lambda stu: stu.score,reverse=True)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。