sorted

sorted是python内置的一个用于排序的函数,它接收三个参数,语法为;

sorted(Iterable, key=None, reverse=False)
  • Iterable: 接收一个可迭代对象,sorted内部会去循环可迭代对象取出元素
  • key: 排序规则(排序函数),sorted将每次从可迭代对象中取出的数据会传递给这个排序函数的参数,根据函数运算的结果进行排序
  • reverse: 控住是否倒叙,True为倒叙,默认为False正序
# 根据字符串⻓度进⾏排序
In[7]: lst = [\"麻花藤\", \"冈本次郎\", \"中央情报局\", \"狐仙\"]
In[8]: lst2 = sorted(lst, key=lambda s: len(s))
In[9]: print(lst2)
[\'狐仙\', \'麻花藤\', \'冈本次郎\', \'中央情报局\']

sorted如果不传作排序用的函数,那么它默认是按照在字符编码中的顺序来排的:

In[10]: lst = [\"麻花藤\", \"冈本次郎\", \"中央情报局\", \"狐仙\"]
In[11]: lst2 = sorted(lst)
In[12]: lst2
Out[12]: [\'中央情报局\', \'冈本次郎\', \'狐仙\', \'麻花藤\']
In[14]: print(ord(\'中\'))
20013
In[15]: print(ord(\'冈\'))
20872
In[16]: print(ord(\'狐\'))
29392
In[17]: print(ord(\'麻\'))
40635

filter

filter是python中内置的一个过滤的函数,其用法跟sorted差不多:

filter(function, iterable)
  • function: ⽤来筛选的函数. 在filter中会⾃动的把iterable中的元素传递给function. 然后
    根据function返回的True或者False来判断是否保留此项数据
  • iterable: 可迭代对象
In[21]: lst = [{\'id\':1,\'name\':\'alex\',\'age\':28},
   ...: {\'id\':2,\'name\':\'taibai\',\'age\':58},
   ...: {\'id\':3,\'name\':\'taihei\',\'age\':18},
   ...: {\'id\':4,\'name\':\'henhei\',\'age\':38}]

In[22]: ret2 = filter(lambda x: x[\'age\'] >= 38, lst)
   ...: [print(x) for x in ret2]
{\'id\': 2, \'name\': \'taibai\', \'age\': 58}                # 从结果来看,年龄小于38的都被过滤掉了
{\'id\': 4, \'name\': \'henhei\', \'age\': 38}

Out[22]: [None, None]

map

映射函数map,使用语法为:

map(function, iterable)

可以对可迭代对象中的每⼀个元素进⾏映射. 分别取执⾏function(其语法和sorted、filter相似)

In[23]: names=[\'oldboy\',\'alex\',\'wusir\']

In[24]: m = map(lambda s: s + \'123\', names)           # 在每个字符串后加上123

In[25]: print(list(m))                                # map返回的也是一个可迭代对象,使用list会去循环遍历元素
[\'oldboy123\', \'alex123\', \'wusir123\']
收藏 打印