python--sorted、filter、map

1.sorted

1.1 概述

在Python中,sorted函数可以用来排序列表、元组、字典等序列,在排序时可以指定升序或者降序。相对于列表的sort方法,sorted函数可以对任何序列进行排序并返回一个新的序列,而不是在原地进行排序。

排序规则:默认情况下,sorted函数按照元素的大小进行排序,元素的大小由__lt__方法或者__gt__方法指定。在 Python3 中,__cmp__方法被废弃,只需要实现 __lt__方法或者 __gt__方法中的一个,Python会自动推导出另外一个。

lst = [5, 3, 8, 4, 2]

print(sorted(lst))

# 输出:[2, 3, 4, 5, 8]

在上述代码中,我们对列表lst进行排序,使用sorted(lst)可以返回一个新的排序后的列表。

1.2 排序指定规则

在sorted函数中,可以使用key参数来指定排序规则,例如,我们将lst按照绝对值大小进行排序,使用abs函数作为key参数。

lst = [-5, 3, 8, -4, 2]

print(sorted(lst, key=abs))

# 输出:[2, 3, -4, -5, 8]

在上述代码中,我们将lst按照绝对值从小到大进行排序,输出的顺序与原始列表的顺序按顺序输出。

另外,我们也可以使用lambda函数来指定排序规则,例如,我们将lst按照元素的第二个字符进行排序。

lst = ["bc", "cd", "ab", "ef"]

print(sorted(lst, key=lambda s: s[1]))

# 输出:['ab', 'cd', 'bc', 'ef']

在上述代码中,我们使用lambda函数指定排序规则,将lst按照元素的第二个字符进行排序。

1.3 排序顺序

在sorted函数中,可以使用reverse参数来指定排序顺序,例如,我们将lst按照降序进行排序。

lst = [5, 3, 8, 4, 2]

print(sorted(lst, reverse=True))

# 输出:[8, 5, 4, 3, 2]

在上述代码中,我们将lst按照降序进行排序。

注意:如果既指定了key参数又指定了reverse参数,请注意参数的顺序。

2.filter

2.1 概述

filter函数用于过滤序列中的元素,当元素满足指定条件时,将元素从序列中提取出来,返回一个新序列。filter函数的函数原型为filter(function, iterable),其中function参数为判断条件的函数(该函数返回值为布尔类型),iterable参数为需要过滤的序列。

注意:在Python3中,filter函数返回一个filter对象,需要使用list函数将其转化为列表。而在Python2中,filter函数则直接返回一个列表。

2.2 过滤偶数

我们可以使用filter函数来过滤列表中的偶数,例如,我们将lst中的偶数提取出来。

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_lst = list(filter(lambda x: x % 2 == 0, lst))

print(even_lst)

# 输出:[2, 4, 6, 8, 10]

在上述代码中,我们定义了一个lambda函数,该函数用于判断序列中的元素是否为偶数。然后使用filter函数,将lst中的偶数提取出来。

2.3 过滤空字符串

我们还可以使用filter函数来过滤列表中的空字符串,例如,我们将lst中的空字符串提取出来。

lst = ['hello', '', 'world', '']

empty_lst = list(filter(lambda x: x == '', lst))

print(empty_lst)

# 输出:['', '']

在上述代码中,我们定义了一个lambda函数,该函数用于判断序列中的元素是否为空字符串。然后使用filter函数,将lst中的空字符串提取出来。

3.map

3.1 概述

map函数用于将一个函数应用于序列的每个元素,返回一个新序列。map函数的函数原型为map(function, iterable),其中function参数为序列中的每个元素应用的函数,iterable参数为需要操作的序列。

3.2 将元素转化为字符串

我们可以使用map函数将lst中的元素转化为字符串,例如,我们将lst中的元素转化为字符串,并返回一个新序列。

lst = [1, 2, 3, 4, 5]

str_lst = list(map(lambda x: str(x), lst))

print(str_lst)

# 输出:['1', '2', '3', '4', '5']

在上述代码中,我们定义了一个lambda函数,将序列中的元素转化为字符串。然后使用map函数将lst中的元素转化为字符串,并返回一个新序列。

3.3 将元素加1

我们还可以使用map函数将lst中的元素加1,例如,我们将lst中的元素加1,并返回一个新序列。

lst = [1, 2, 3, 4, 5]

add_lst = list(map(lambda x: x + 1, lst))

print(add_lst)

# 输出:[2, 3, 4, 5, 6]

在上述代码中,我们定义了一个lambda函数,将序列中的元素加1。然后使用map函数将lst中的元素加1,并返回一个新序列。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

上一篇:Python--发送邮件

下一篇:python--封装

后端开发标签