IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python内置函数教程 -> 正文阅读

[Python知识库]Python内置函数教程

1 .filter(function, sequence):

对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数。

str = ['a', 'b','c', 'd']
  
def fun1(s):
    if s != 'a':
        return s
  
  
ret = filter(fun1, str)
  
print(list(ret))# ret是一个迭代器对象      

2.map(function, sequence)

map()函数,可以将一个函数映射到一个可以枚举类型上面。对sequence中的item依次执行function(item),将执行结果组成一个List返回

另外map也支持多个sequence,当然这也要求function支持相应数量的参数输入。

str = ['a', 'b','c','d']
  
def fun2(s):
  
    return s + "alvin"
  
ret = map(fun2, str)
  
print(ret)      #  map object的迭代器
print(list(ret))#  ['aalvin', 'balvin', 'calvin', 'dalvin']
>>> def cube(x): return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x
 
>>> def add(x, y): return x+y
>>> map(add, range(8), range(8))
[0, 2, 4, 6, 8, 10, 12, 14]

对sequence中的item依次执行function(item),将执行结果组成一个map object迭代器返回.
map也支持多个sequence,这就要求function也支持相应数量的参数输入:

def add(x,y):
    return x+y
print (list(map(add, range(10), range(10))))
##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

3.reduce(function, sequence, starting_value)

对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用.

from functools import reduce
  
def add1(x,y):
    return x + y
  
print (reduce(add1, range(1, 101)))## 4950 (注:1+2+...+99)
  
print (reduce(add1, range(1, 101), 20))## 4970 (注:1+2+...+99+20)

对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和,示例如下:

>>> def add(x,y): return x + y
 >>> reduce(add, range(1, 11))
(注:1+2+3+4+5+6+7+8+9+10>>> reduce(add, range(1, 11), 20)
(注:1+2+3+4+5+6+7+8+9+10+20

4.lambda

它允许你快速定义单行的最小函数(其本质就是函数),类似C语言中的宏,可以用在任何需要函数的地方,示例如下:

>>> g = lambda x: x * 2
>>> g(3)
6
>>> (lambda x: x * 2)(3)
6

普通函数与匿名函数的对比:

#普通函数
def add(a,b):
    return a + b
  
print add(2,3)
  
   
#匿名函数
add = lambda a,b : a + b
print add(2,3)
  
  
#========输出===========
5
5

匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b)。

因为lamdba在创建时不需要命名,所以,叫匿名函数

5.int64和int的区别?

int是Python的基本类型,而int64是numpy中引入的一个类,即numpy.int64;

使用numpy模块中的numpy.sum()方法得到的结果是Int64,而使用默认的sum()得到的结果是Int类型。

下面代码中,虽然执行结果a和b的数值都是6,但是类型不同。

 import numpy as np
 # a 的类型是int64
 a = np.sum([1,2,3])
 # b 的类型是int
 b = sum([1,2,3])

int64不会报除0的错误(事实上numpy中的其他类型也不会报错,比如float64等);而int会报除0错误(其他基本类型也会,比如float等)

6.sorted函数

对sequence进行排序,直接看例子:

>>> s = [('a', 3), ('b', 2), ('c', 1)]
 
>>> sorted(s, key=lambda x:x[1])
s = [('a', 3), ('b', 2), ('c', 1)]

更多例子:

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> l = ['foo', 'bar', 'far']
>>> map(lambda x: x.upper(), l)
['FOO', 'BAR', 'FAR']
>>> filter(lambda x: 'f' in x, l)
['foo', 'far']
>>> map(lambda x: x.upper(), filter(lambda x: 'f' in x, l))
['FOO', 'FAR']
>>> reduce(lambda a, b: a * b, xrange(1, 5)) # 计算 1*2*3*4 = 24
24

7.序列解包(for x,y in zip(keys,values):)详解

序列解包是一个非常重要和常用的一个功能,使用序列解包可以用非常简洁的方法完成复杂的功能。增强代码的可读性,减少代码量。

zip函数接受多个(包括0个和1个)序列作为参数,返回一个tuple列表。

(1 使用序列解包对多个变量同时进行赋值

a, b, c = 1, 2, 3
print(a, b, c)
  
test_tuple = (False, 3.5, 'test')
d, e, f = test_tuple
print(d, e, f)
  
x, y, z = map(str, range(3))
  
print(x, y, z)

输出结果为:

1 2 3
False 3.5 test
0 1 2

(2 序列解包也可以用于列表和字典

字典的话默认是对“key” 进行操作,如需对“key”----“value” 进行操作则需要使用字典的items()方法进行操作。“value” 进行操作的话就使用values进行操作。

#列表进行解包
a = [1, 2, 3, 5, 6]
b, c, d, f, g = a
print(b, c, d, f, g)
  
print('---------------------------')
  
#字典进行解包
test_dicts = {'a': 'x', 'b': 1, 'c': 3}
  
q, w, e = test_dicts
r, t, y = test_dicts.items()
i, o, p = test_dicts.values()
  
print(q, w, e)
print(r, y, t)
print(i, o, p)

输出结果:

1 2 3 5 6
---------------------------
a b c
('a', 'x') ('c', 3) ('b', 1)
x 1 3

(3 用序列解包同时遍历多个序列

list_1 = [1, 2, 3, 4]
list_2 = ['a', 'b', 'c']
  
for x, y in zip(list_1, list_2):
    print(x, y)

结果:

1 a
2 b
3 c

(4 Python3.x和Python2.x在zip函数的区别

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
#注意:Python3.x和Python2.x这里的差别
#Python3.x
xyz = list(zip(x, y, z))
#Python2.x
#xyz = zip(x, y, z)
print(xyz)
#输出结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

Python基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了

Python爬虫案例教程推荐:←点击左边蓝色文字就可以跳转观看了

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:34:38  更:2021-11-30 15:37:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:42:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码