Python-常见内置函数

map

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

在Python2中返回列表,在python3中返回迭代器。

def square(x):
    return x ** 2


print(list(map(square, [1, 2, 3, 4])))
---------------------
1 4 9 16 

#使用匿名函数
print(list(map(lambda x:x**2, [1, 2, 3, 4])))
-------------
1 4 9 16 

# 提供了两个列表,对相同位置的列表数据进行相加
print(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
-------------
[3, 7, 11, 15, 19]

filter

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

python2中返回列表,python3返回迭代器

def is_odd(n):
    return n % 2 == 1


newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(list(newlist))
---------------
[1, 3, 5, 7, 9]

zip

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

了解:zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

a = [1, 2, 3]
b = [4, 5, 6]
c = [7,8,9,10]

res1 = zip(a, b)
res2 = zip(a, c)
print(list(res1))
print(list(res2))
----------------
[(1, 4), (2, 5), (3, 6)]
[(1, 7), (2, 8), (3, 9)]

next

next() 返回迭代器的下一个项目。

next() 函数要和生成迭代器的iter() 函数一起使用。

# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break

了解:如果传入第二个参数, 获取最后一个元素之后, 下一次next返回该默认值, 而不会抛出 StopIteration:

it = iter([1, 2, 5, 4, 3])
while True:
    x = next(it, 'a') # 在next的时候可以设置一个最后默认值
    print(x)
    if x == 'a':
        break
------------------------
1
2
5
4
3
a

hash

hash() 用于获取取一个对象(字符串或者数值等)的哈希值。

hash() 函数可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。

hash() 对对象使用时,所得的结果不仅和对象的内容有关,还和对象的 id(),也就是内存地址有关。

hash('test') # 字符串
----------
2314058222102390712

hash(1) # 数字
--------
1

hash(str([1,2,3]))  # 集合
------------------
1335416675971793195

hash(str(sorted({'1':1}))) # 字典
---------------
7666464346782421378

help

help() 函数用于查看函数或模块用途的详细说明

>>>help('sys')             # 查看 sys 模块的帮助
……显示帮助信息……
 
>>>help('str')             # 查看 str 数据类型的帮助
……显示帮助信息……
 
>>>a = [1,2,3]
>>>help(a)                 # 查看列表 list 帮助信息
……显示帮助信息……
 
>>>help(a.append)          # 显示list的append方法的帮助
……显示帮助信息……

id

id() 函数返回对象的唯一标识符,标识符是一个整数。

CPython 中 id() 函数用于获取对象的内存地址。

name = 'yang'
print(id(name))
---------------
2541526569288

enumerate

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

list1 = iter([1,2,3,4,5])
for index,value in enumerate(list1):
    print(index,value)
-----------------------
0 1
1 2
2 3
3 4
4 5

reduce

reduce() 函数会对参数序列中元素进行累积。

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

from functools import reduce

print(reduce(lambda x, y: x + y, [1, 2, 3, 4, 5]))
---------------------
15

eval

eval() 函数用来执行一个字符串表达式,并返回表达式的值。在文件中存入字典格式的字符串,也可用eval转换出来,不过一般不使用,因为我们可以使用json或者pickle模块

x = 3
print(eval('10-x'))
------
7
posted @ 2020-12-01 09:33  王寄鱼  阅读(76)  评论(0编辑  收藏  举报