Python中的各种函数

1.map() 函数,将可迭代对象中每一条数据都执行一次函数,并且将函数执行的返回结果放入另一个可迭代对象中。

2.filter() 函数,会将列表中每一条数据执行一次函数,并将条件为真的数据放入结果中(None、''/、False、0这些都是条件为假的      数据),如:

result = filter(a, [1, 2, 0, False, '', True, '', 0, 3])
for x in result:
    print(x)

   输出的结果为:1
                            2
                            True
                            3

3.sorted() 函数,对所有可迭代的函数进行排序操作。将列表中的数据两两进行传递:

    (1)如果x>y,返回-1;x<y,返回1,。此为降序排序

    (2)如果x>y,返回1;x<y,返回-1,。此为序排序

4.匿名函数。格式为:       lambda 参数1、参数2...:函数返回值  函数运算逻辑

    (1)当函数重复使用次数少,函数比较简单的时候,可以使用匿名函数。

    (2)特点:不用给韩式命名,省略了大量的命名操作;  简化代码,省略大量不需要的冗余代码;  方便维护和管理。

    如:判断列表中的数据是奇数还是偶数?若是奇数,返回x*x;若是偶数,返回x/2,代码如下:

list1 = [25,2323,34,7,56,2,41,524,3,65,857,76,232]

def filter_num(x):
    if x % 2 == 0:
        return x/2
    else:
        return x*x

    利用匿名函数只需要一句代码即可;

result = map(lambda x: x/2 if x % 2 == 0 else x*x, list1)

5.reduce()函数,会对参数列表中元素进行累计。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给          reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数      运算,最后得到一个结果。

   在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要      通过引入 functools 模块来调用 reduce() 函数:from functools import reduce

6.列表生成式:就是用来快速生成一个列表的公式,如:

list1 = [x for x in range(100)]

list2 = [x for x in range(100) if x % 2 == 0]

7.练习:使用map+reduce+lamda+列表生成式产生一个存放100个0~100随机整数的列表,将生成的列表中每一条数据进行判        断,如果是奇数,返回**2;如果是偶数,返回/2.把计算的结果进行累加,最终得到一个计算的结果数字。具体代码如下:

list_run = [random.randint(0,100) for x in range(100)]
print(list_run)

map_rs = map(lambda x:x/2 if x % 2 == 0 else x**2,list_run)

result = reduce(lambda x,y:x+y ,map_rs)
print(result)

result = reduce(lambda x,y:x+y ,map(lambda x:x/2 if x % 2 == 0
        else x**2,[random.randint(0,100) for x in range(100)]))

print(result)

猜你喜欢

转载自blog.csdn.net/qq_42598133/article/details/81190188