python--sorted、filter、map

网友投稿 278 2022-08-25


python--sorted、filter、map

sorted

排序函数.

语法: sorted(Iterable, key=None, reverse=False)Iterable: 可迭代对象key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序reverse: 是否是倒序. True: 倒序, False: 正序

lst = [5, 7, 6, 12, 1, 13, 9, 18, 5]lst.sort() # sort是list里面的一个方法print(lst)

结果:

[1, 5, 5, 6, 7, 9, 12, 13, 18]

倒序在排下

lst = [5, 7, 6, 12, 1, 13, 9, 18, 5]ll = sorted(lst, reverse=True) # 内置函数. 返回给你一个新列表 新列表是被排序的print(ll)

结果:

[18, 13, 12, 9, 7, 6, 5, 5, 1]

给列表排序. 根据字符串的长度进行排序

lst = ["大阳哥", "尼古拉斯", "赵四", "刘能", "广坤", "谢大脚"]def func(s): return len(s) # 返回数字ll = sorted(lst, key=lambda s: len(s)) # lambda函数等价于上面的func函数print(ll)

结果:

['赵四', '刘能', '广坤', '大阳哥', '谢大脚', '尼古拉斯']

ll = sorted(lst, key=lambda s:s.count('a')) # 内部. 把可迭代对象中的每一个元素传递给func

lst = [ {'id': 1, 'name': '张三', 'age': 18}, {'id': 2, 'name': '李四', 'age': 58}, {'id': 3, 'name': '王五', 'age': 38}, {'id': 4, 'name': '赵六', 'age': 48}, {'id': 5, 'name': '女神', 'age': 18}]ll = sorted(lst, key=lambda dic: dic['age'], reverse=True)print(ll)

结果:

[{'id': 2, 'name': '李四', 'age': 58}, {'id': 4, 'name': '赵六', 'age': 48}, {'id': 3, 'name': '王五', 'age': 38}, {'id': 1, 'name': '张三', 'age': 18}, {'id': 5, 'name': '女神', 'age': 18}]

filter

筛选函数

语法: filter(function. Iterable)function:用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或False来判断是否保留此项数据Iterable: 可迭代对象

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]ll = filter(lambda i: i % 2 == 1, lst)# 第一个参数. 函数. 将第二个参数中的每一个元素传给函数. 函数如果返回True, 留下该元素.print("__iter__" in dir(ll))print("__next__" in dir(ll))print(list(ll))

结果:

TrueTrue[1, 3, 5, 7, 9]

lst = [ {'id': 1, 'name': '张三', 'age': 18}, {'id': 2, 'name': '李四', 'age': 58}, {'id': 3, 'name': '王五', 'age': 38}, {'id': 4, 'name': '赵六', 'age': 48}, {'id': 5, 'name': '女神', 'age': 18}]print(list(filter(lambda dic: dic['age'] > 40, lst)))

结果:

[{'id': 2, 'name': '李四', 'age': 58}, {'id': 4, 'name': '赵六', 'age': 48}]

map

映射函数

语法: map(function, iterable) 可以对可迭代对象中的每个元素进行映射. 分别去执行function

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]it = map(lambda i: i * i, lst) # 把可迭代对象中的每一个元素传递给前面的函数进行处理. 处理的结果会返回成迭代器print(list(it))

结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

lst1 = [1, 2, 3, 4, 5]lst2 = [2, 4, 6, 8]print(list(map(lambda x, y: x + y, lst1, lst2))) # 如果函数中有多个参数. 后面对应的列表要一一对应

结果:

[3, 6, 9, 12]


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python--推导式、匿名函数(匿名函数用法)
下一篇:SpringBoot项目中建议关闭Open
相关文章

 发表评论

暂时没有评论,来抢沙发吧~