python 内置高级函数

random.sample

#从1-9中随机选取7个不重复的数字
a = [x for x in random.sample(range(1,10),7)]
print(a)	#[6, 1, 7, 8, 3, 4, 5, 9, 2]

1、map

  • map(func, *iterables) --> map object

  • 循环iterables中的每个元素,然后让每个元素执行函数func,将每个函数执行的结果保存到新的列表中,并返回一个map对象

lis1 = [7, 3, 8, 6, 2, 9, 5]
res = map(lambda x:x+10,lis1)
print(res)  #<map object at 0x000001ED13333908>
print(list(res))    #[17, 13, 18, 16, 12, 19, 15]

2、max

  • max(arg1, arg2, *args, *[, key=func]) -> value

  • 使用单个可迭代参数,返回其最大的项。默认的关键字参数指定了当提供的iterable为空时返回的对象。使用两个或多个参数,返回最大的参数

list2 = [7, -3, 8, 6, 2, -9, 5]
print(max(list2))   #8
print(max(list2,key=lambda x:abs(x)))   #-9

3、filter

  • filter(function or None, iterable) --> filter object

  • 过滤序列,过滤掉不符合条件的,返回由符合条件的元素组成的新列表。如果function为None,则返回为true的项

list1 = [7, 3, 8, 6, 2, 9, 5]
res = filter(lambda x:x>5,list1)
print(res)  #<filter object at 0x0000024C48A03508>
print(list(res))    #[7, 8, 6, 9]

list2 = [7, 3, 8, 6, 0, 9, 5]
res = filter(None,list2)
print(list(res))    #[7, 3, 8, 6, 9, 5]

4、zip

  • zip(iter1 [,iter2 […]]) --> zip object

  • 接收任意多个可迭代对象作为参数,将每个对象中的对应位置的元素打包成一个元祖,然后返回一个可迭代的zip对象

a = [1,2,3,4,5]
b = ['a','b','c','d','e']
c = [6,7,8,9]
print(zip(a,b,c))   #<zip object at 0x000001B1C81E3508>
print(list(zip(a,b,c))) #[(1, 'a', 6), (2, 'b', 7), (3, 'c', 8), (4, 'd', 9)]

5、sorted

  • 函数参数

  • 返回一个将iterable中所有元素升序排列完的列表

代码

原创文章 12 获赞 6 访问量 434

猜你喜欢

转载自blog.csdn.net/Hzfeng666/article/details/105421924