Python中常用内置函数上【含代码理解】

第十一节

11.1、dir():主要用于查看对象的所有属性和方法

复制代码
print(lst.__len__())
print(len(lst))         # len() 其实调用的就是该对象的 __len__()函数
s = {1,2,3}
print(dir(s))

如果不传入任何数据对象时 则默认将当前环境的属性和方法列出

复制代码
def show():
    return 1
numA = 10
numB = 20
print(dir())

11.2**、round ():四舍五入的数学计算函数**

复制代码
print(round(3.4)) # 3
print(round(3.8)) # 4
# 对于小数以5结尾,用的是银行家舍入算法 近似到最近的一个偶数
print(round(3.5)) # 4
print(round(4.5)) # 4
print(round(5.5)) # 6
print(round(6.5)) # 6
# ndigits参数 用于指定保留小数位的
print(round(3.1415926, 3))
print(round(3.1414926, 3))
print(round(3.1418926, 3))
# 如果为负数 用于将整数部分进行四舍五入
print(round(12345,-3))
print(round(12545,-3))

11.3 all ():用于判断可迭代对象中的所有元素是否都为真

复制代码
arr = [1,"abc",True,[1,2,3],{1,2,3}]
print(all(arr)) # True
arr = [0,"abc",True,[1,2,3],{1,2,3}]
print(all(arr)) # False
arr = [1,"",True,[1,2,3],{1,2,3}]
print(all(arr)) # False
arr = [1,"abc",True,[],{1,2,3}]
print(all(arr)) # False

if [1,2,3]: # 非零值 True
    print("haha") # 打印了
  • 数字的零值:0、0.0

  • 布尔类型的零值:False

  • 字符串的零值:""

  • 列表、元组、集合、字典的零值:空容器

  • 零值为False,非零值则为True

11.4 any():用于判读可迭代对象中的所有元素至少包含一个元素为真

复制代码
arr = [1,"abc",True,[1,2,3],{1,2,3}]
print(any(arr)) # True
arr = [0,"abc",True,[1,2,3],{1,2,3}]
print(any(arr)) # True
arr = [1,"",True,[1,2,3],{1,2,3}]
print(any(arr)) # True
arr = [1,"abc",True,[],{1,2,3}]
print(any(arr)) # True
arr = [0,"",False,[],{}] # False

11.5 filter():

用于过滤可迭代对象中的元素,返回的是一个迭代器

  • 迭代器,它不会立即将所有的元素进行遍历或列出,而是在需要时逐个去生成每一个满足条件/要求的元素。如果想一次性将所有元素取出,就可以利用list()、tuple()和set()之类的方法将元素全部取出。

    arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    lst = [x for x in arr if x % 2 == 0]
    print(lst)

    filter 传入两个参数(过滤函数,可迭代对象) 返回值应该是布尔类型

    def is_even(number):
    return number % 2 == 0

    此时返回的是迭代器,相当于一个遍历的规则 其实并没有将所有元素列出

    f = filter(is_even, arr) # [is_even(number) for number in arr]

    用循环去遍历迭代器,迭代器就会按照预定的规则进行元素的获取

    for num in f:
    print(num)

    通过list之类的函数,一次性将元素全部列出

    lst = list(filter(is_even, arr))
    print(lst)

    迭代器的好处在于,内存效率更高,在处理大批量数据时,不会直接把所有的元素生成,而是根据需求自动运行来取出元素

    如果不传入过滤函数时,则默认过滤假值

    arr = [0, 1, "", "abc", [], [1, 2, 3]]

    for item in filter(None, arr):
    print(item)

相关推荐
zzzzzz3105 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐6 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱17 小时前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot19 小时前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽1 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码1 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱2 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵2 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学